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将xml xsl文件生成html文件存储示例讲解
Dec 03 Python
详解Python if-elif-else知识点
Jun 11 Python
python实现机器学习之多元线性回归
Sep 06 Python
python根据list重命名文件夹里的所有文件实例
Oct 25 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
Jun 03 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
简单介绍django提供的加密算法
Dec 18 Python
Pytorch中.new()的作用详解
Feb 18 Python
Python计算指定日期是今年的第几天(三种方法)
Mar 26 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
python爬虫之爬取笔趣阁小说
Apr 22 Python
Python实现生活常识解答机器人
Jun 28 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 htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
2016/11/16 PHP
php实现的pdo公共类定义与用法示例
2017/07/19 PHP
JSON 教程 json入门学习笔记
2020/09/22 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
jquery如何判断表格同一列不同行input数据是否重复
2014/05/14 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
2019/05/06 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python实现删除文件中含“指定内容”的行示例
2017/06/09 Python
python 常用的基础函数
2018/07/10 Python
python单例模式实例解析
2018/08/28 Python
Python 访问限制 private public的详细介绍
2018/10/16 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
python 实现屏幕录制示例
2019/12/23 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
Python opencv相机标定实现原理及步骤详解
2020/04/09 Python
使用opencv中匹配点对的坐标提取方式
2020/06/04 Python
如何使用Python调整图像大小
2020/09/26 Python
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
自我评价个人范文
2013/12/16 职场文书
入职担保书怎么写
2014/05/12 职场文书
农村党建工作汇报材料
2014/10/27 职场文书
大学体育课感想
2015/08/10 职场文书
python tkinter模块的简单使用
2021/04/07 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android