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 相关文章推荐
Python3 处理JSON的实例详解
Oct 29 Python
使用实现pandas读取csv文件指定的前几行
Apr 20 Python
关于python写入文件自动换行的问题
Jun 23 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
Jan 04 Python
Python下简易的单例模式详解
Apr 08 Python
Django REST framework 单元测试实例解析
Nov 07 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
Tensorflow 实现释放内存
Feb 03 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python中实现栈的三种方法
Dec 19 Python
python缺失值填充方法示例代码
Dec 24 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中inlcude()性能对比详解
2012/09/16 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP simplexml_load_file()函数讲解
2019/02/03 PHP
杨氏矩阵查找的JS代码
2013/03/21 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
JS小功能(button选择颜色)简单实例
2013/11/29 Javascript
JS实现仿百度输入框自动匹配功能的示例代码
2014/02/19 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
2015/05/13 Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
2017/02/22 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
vue实现短信验证码登录功能(流程详解)
2019/12/10 Javascript
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python中文编码与json中文输出问题详解
2018/08/24 Python
利用python和百度地图API实现数据地图标注的方法
2019/05/13 Python
文件上传服务器-jupyter 中python解压及压缩方式
2020/04/22 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
个性化皮包、小袋、生活配件:Mon Purse
2019/03/26 全球购物
Notino法国:购买香水和化妆品
2019/04/15 全球购物
JAVA代码查错题
2014/10/10 面试题
.NET是怎么支持多种语言的
2015/02/24 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
会计专业毕业生自我评价
2013/09/25 职场文书
酒店员工检讨书
2014/02/18 职场文书
销售团队获奖感言
2014/08/14 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
劳模事迹材料范文
2014/12/24 职场文书
公司停电通知
2015/04/15 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技