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 04 Python
Python中super的用法实例
May 28 Python
Python 正则表达式入门(中级篇)
Dec 07 Python
python函数的5种参数详解
Feb 24 Python
分分钟入门python语言
Mar 20 Python
Python 面试中 8 个必考问题
Nov 16 Python
python实现爬山算法的思路详解
Apr 09 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
tensorflow安装成功import tensorflow 出现问题
Apr 16 Python
Python绘制K线图之可视化神器pyecharts的使用
Mar 02 Python
python可视化之颜色映射详解
Sep 15 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
自己在做项目过程中学到的PHP知识收集
2012/08/20 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
2013/09/29 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
JavaScript调试工具汇总
2014/12/23 Javascript
在JavaScript中使用开平方根的sqrt()方法
2015/06/15 Javascript
javascript中的previousSibling和nextSibling的正确用法
2015/09/16 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
jquery 删除节点 添加节点 找兄弟节点的简单实现
2016/12/07 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
p5.js入门教程之鼠标交互的示例
2018/03/16 Javascript
微信小程序中使用wxss加载图片并实现动画效果
2018/08/13 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
Python调用C语言开发的共享库方法实例
2015/03/18 Python
教你用Python创建微信聊天机器人
2020/03/31 Python
python如何使用unittest测试接口
2018/04/04 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
Python操作注册表详细步骤介绍
2020/02/05 Python
如何使用Pytorch搭建模型
2020/10/26 Python
个人简历的自荐信
2013/10/23 职场文书
酒店前厅员工辞职信
2014/01/08 职场文书
相亲大会策划方案
2014/06/05 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
担保贷款承诺书
2015/04/30 职场文书
银行岗位培训心得体会
2016/01/09 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
【js设计模式】SOLID五大设计原则
2022/03/24 Javascript