Python实现在线音乐播放器


Posted in Python onMarch 03, 2017

最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date : 2016-12-28 21:03:21
# @Author : Donoy (172829352@qq.com)
# @Link : http://www.cnblogs.com/Donoy/
# @Version : $Id$

from Tkinter import *
import tkMessageBox
import requests
import json
import urllib
import mp3play
import threading
import time

def center_window(root, width, height): 
 screenwidth = root.winfo_screenwidth() 
 screenheight = root.winfo_screenheight() 
 size = '%dx%d+%d+%d' % (width, height, (screenwidth - width)/2, (screenheight - height)/2) 
 root.geometry(size) 

def createWnd():
 global root
 global listBox
 global text
 
 root = Tk()
 root.title('-----DMPlayer------来自网易云音乐-----')

 center_window(root, 440, 250)

 root['background'] = '#C7EDCC'
 
 text = Entry(font='宋体',width=36)
 text.pack()
 button = Button(root,text='搜索',width=18,fg='red',background='#CDCDC1',command=searchM).pack()
 
 listBox = Listbox(root, height=12,width=72,background='#C7EDCC')
 listBox.bind('<Double-Button-1>',play)
 listBox.pack()

 root.mainloop()

def searchM():
 global m_List 
 itemCount = 50

 if not text.get():
 tkMessageBox.showinfo('温馨提示','您可以输入以下内容进行搜索\n1.歌曲名\n2.歌手名\n3.部分歌词')
 return

 #获得输入的歌名
 url = 'http://s.music.163.com/search/get/?type=1&s=%s&limit=%s'%(text.get(),itemCount)
 
 #get请求
 header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36'}
 html = requests.get(url,header)
 data = json.loads(html.text)
 m_List = []

 try:
 listBox.delete(0,listBox.size())
 for MusicData in data['result']['songs']:
  listBox.insert(END,MusicData['name'] +'------'+'(' +MusicData['artists'][0]['name'] + ')')
  m_List.append(MusicData['audio'])
 except Exception as e: 
 tkMessageBox.showinfo('温馨提示','查询过程出现错误,请重试')
 #print '查询过程出现错误,请重试'
 
 
def play(args):
 try:
 global mp3
 sy = listBox.curselection()[0]
 mp3 = mp3play.load(m_List[int(sy)])
 mp3.play()
 #time.sleep(1000)
 except Exception as e:
 pass

 
def main():
 createWnd()


if __name__ == '__main__':
 main()

程序运行结果:

Python实现在线音乐播放器

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python科学画图代码分享
Nov 29 Python
利用python编写一个图片主色转换的脚本
Dec 07 Python
实用自动化运维Python脚本分享
Jun 04 Python
python 3.6.7实现端口扫描器
Sep 04 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
django配置app中的静态文件步骤
Mar 27 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
简单了解Python多态与属性运行原理
Jun 15 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
Python如何合并多个字典或映射
Jul 24 Python
python 多线程爬取壁纸网站的示例
Feb 20 Python
如何利用pygame实现打飞机小游戏
May 30 Python
python开发简易版在线音乐播放器
Mar 03 #Python
详解python中requirements.txt的一切
Mar 03 #Python
python中异常捕获方法详解
Mar 03 #Python
python利用不到一百行代码实现一个小siri
Mar 02 #Python
Python正则表达式教程之三:贪婪/非贪婪特性
Mar 02 #Python
Python正则表达式教程之二:捕获篇
Mar 02 #Python
Python正则表达式教程之一:基础篇
Mar 02 #Python
You might like
AM/FM收音机的安装与调试
2021/03/02 无线电
php仿QQ验证码的实例分析
2013/07/01 PHP
Thinkphp中volist标签mod控制一定记录的换行BUG解决方法
2014/11/04 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
2016/10/13 PHP
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
Javascript中3种实现继承的方法和代码实例
2014/08/12 Javascript
基于jquery ui的alert,confirm方案(支持换肤)
2015/04/03 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
js时间戳与日期格式之间转换详解
2017/12/11 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
Node.js利用Express实现用户注册登陆功能(推荐)
2020/10/26 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
详解Python中的各种函数的使用
2015/05/24 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
python中sys.argv函数精简概括
2018/07/08 Python
matplotlib实现区域颜色填充
2019/03/18 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
virtualenv介绍及简明教程
2020/06/23 Python
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
Cocopanda波兰:购买化妆品、护肤品、护发和香水
2020/05/25 全球购物
我未来的职业规划范文
2014/01/11 职场文书
会议开场欢迎词
2014/01/15 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
代理协议书范本
2014/04/22 职场文书
应届生自荐信
2014/06/30 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
公司门卫岗位职责
2015/04/13 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android