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实现图片批量剪切示例
Mar 25 Python
完美解决Python2操作中文名文件乱码的问题
Jan 04 Python
python cx_Oracle模块的安装和使用详细介绍
Feb 13 Python
对pandas中to_dict的用法详解
Jun 05 Python
对python3中pathlib库的Path类的使用详解
Oct 14 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
python禁用键鼠与提权代码实例
Aug 16 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
如何理解Python中包的引入
May 29 Python
python中什么是面向对象
Jun 11 Python
Python绘制散点图之可视化神器pyecharts
Jul 07 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语法(5)
2006/10/09 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
Jquery操作Select 简单方便 一个js插件搞定
2009/11/12 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
2013/04/26 Javascript
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
2014/02/12 Javascript
JavaScript 实现打印,打印预览,打印设置
2014/12/30 Javascript
JavaScript编写Chrome扩展实现与浏览器的交互及时间通知
2016/05/16 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
Angular实现双向折叠列表组件的示例代码
2017/11/21 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
详解微信小程序-扫一扫 wx.scanCode() 扫码大变身
2019/04/30 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
Python更新所有已安装包的操作
2020/02/13 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
2020/04/01 Python
Python第三方库的几种安装方式(小结)
2020/04/03 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
基于python 取余问题(%)详解
2020/06/03 Python
HTML5语音识别标签写法附图
2013/11/18 HTML / CSS
中药专业毕业自荐书范文
2014/02/08 职场文书
联谊会主持词
2014/03/26 职场文书
教师节简报
2015/07/20 职场文书