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实现判断数组是否包含指定元素的方法
Jul 15 Python
python中模块查找的原理与方法详解
Aug 11 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
Python+OpenCV实现车牌字符分割和识别
Mar 31 Python
Python处理中文标点符号大集合
May 14 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
python openpyxl使用方法详解
Jul 18 Python
Python算法中的时间复杂度问题
Nov 19 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
什么是Python包的循环导入
Sep 08 Python
python 服务器运行代码报错ModuleNotFoundError的解决办法
Sep 16 Python
Python读写csv文件流程及异常解决
Oct 20 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
农民C键的运用技巧
2020/03/04 星际争霸
PHP集成FCK的函数代码
2008/09/27 PHP
PHP array_flip() 删除重复数组元素专用函数
2010/05/16 PHP
wamp服务器访问php非常缓慢的解决过程
2015/07/01 PHP
PHP实现的memcache环形队列类实例
2015/07/28 PHP
PHP实现的数独求解问题示例
2017/04/18 PHP
PHP构造二叉树算法示例
2017/06/21 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
Javascript调用C#代码
2011/01/17 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
JavaScript获取网页表单action属性的方法
2015/04/02 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
react中的ajax封装实例详解
2017/10/17 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
python3 常见解密加密算法实例分析【base64、MD5等】
2019/12/19 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
CSS3实现各种图形的示例代码
2016/10/19 HTML / CSS
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
写自荐信有哪些不宜?
2013/10/17 职场文书
经管应届生求职信
2013/11/17 职场文书
法人委托书范本
2014/04/04 职场文书
男性健康日的活动方案
2014/08/18 职场文书
教师节感谢信
2015/01/22 职场文书
校运会广播稿
2015/08/19 职场文书
python四种出行路线规划的实现
2021/06/23 Python
JavaScript声明变量和数据类型的转换
2022/04/12 Javascript