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实现通过文件路径获取文件hash值的方法
Apr 29 Python
Python3实现带附件的定时发送邮件功能
Dec 22 Python
python实现俄罗斯方块游戏
Mar 25 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
浅析python的Lambda表达式
Feb 27 Python
Python 通过打码平台实现验证码的实现
May 13 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
python调用私有属性的方法总结
Jul 24 Python
python给list排序的简单方法
Dec 10 Python
详解Python常用的魔法方法
Jun 03 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
PHP使用redis实现统计缓存mysql压力的方法
2015/11/14 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
js 内存释放问题
2010/04/25 Javascript
javascript整除实现代码
2010/11/23 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
深入理解javascript的执行顺序
2014/04/04 Javascript
Easyui form combobox省市区三级联动
2016/01/13 Javascript
ClearTimeout消除闪动实例代码
2016/02/29 Javascript
asp.net+jquery.form实现图片异步上传的方法(附jquery.form.js下载)
2016/05/05 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
【经典源码收藏】基于jQuery的项目常见函数封装集合
2016/06/07 Javascript
全面解析jQuery $(document).ready()和JavaScript onload事件
2016/06/08 Javascript
JS实现重新加载当前页面或者父页面的几种方法
2016/11/30 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
ES6中Generator与异步操作实例分析
2017/03/31 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
Python的迭代器和生成器
2015/07/29 Python
基于python实现微信模板消息
2015/12/21 Python
PyQt5每天必学之带有标签的复选框
2018/04/19 Python
使用TensorFlow实现SVM
2018/09/06 Python
python issubclass 和 isinstance函数
2019/07/25 Python
python词云库wordCloud使用方法详解(解决中文乱码)
2020/02/17 Python
python3 简单实现组合设计模式
2020/07/02 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
业务经理岗位职责
2013/11/11 职场文书
基层党员公开承诺书
2014/05/29 职场文书
中秋手机店促销方案
2014/06/16 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
乡镇党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
计划生育诚信协议书
2014/11/02 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
结婚十年感言
2015/07/31 职场文书