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 24 Python
Python Django使用forms来实现评论功能
Aug 17 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
python实现12306登录并保存cookie的方法示例
Dec 17 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
python实现小程序推送页面收录脚本
Apr 20 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
python time()的实例用法
Nov 03 Python
Python中pass的作用与使用教程
Nov 13 Python
python中的3种定义类方法
Nov 27 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 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中使用TCPDF生成PDF文档实例
2014/07/01 PHP
PHP标准类(stdclass)用法示例
2016/09/28 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
2019/09/29 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
用php实现分页效果的示例代码
2020/12/10 PHP
js 链式延迟执行DOME
2012/01/04 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
2015/08/24 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
2016/05/20 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
详解使用create-react-app快速构建React开发环境
2018/05/16 Javascript
微信小程序倒计时功能实例代码
2018/07/17 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
理解JavaScript中的对象
2020/08/25 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
python在windows和linux下获得本机本地ip地址方法小结
2015/03/20 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
python爬虫爬取淘宝商品信息
2018/02/23 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python 画函数曲线示例
2019/12/04 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Python中常用的os操作汇总
2020/11/05 Python
Python使用Pygame绘制时钟
2020/11/29 Python
美国最大的无人机经销商:DroneNerds
2018/03/20 全球购物
服务宗旨标语
2014/07/01 职场文书
2014年高校辅导员工作总结
2014/12/09 职场文书
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript
Python实现双向链表
2022/05/25 Python