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实现进程间通信简单实例
Jul 23 Python
python对象及面向对象技术详解
Jul 19 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
Python装饰器简单用法实例小结
Dec 03 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
python中class的定义及使用教程
Sep 18 Python
浅谈Pytorch中的自动求导函数backward()所需参数的含义
Feb 29 Python
PyTorch加载自己的数据集实例详解
Mar 18 Python
python 实现波浪滤镜特效
Dec 02 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
Mar 03 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
Laravel与CI框架中截取字符串函数
2016/05/08 PHP
php-fpm中max_children的配置
2019/03/15 PHP
PHP FileSystem 文件系统常用api整理总结
2019/07/12 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
FF(火狐)浏览器无法执行window.close()解决方案
2014/11/13 Javascript
jQuery插件之Tocify动态节点目录菜单生成器附源码下载
2016/01/08 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
2016/11/27 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
2017/01/19 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
JS监听滚动和id自动定位滚动
2018/12/18 Javascript
Vue 实现登录界面验证码功能
2020/01/03 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python字符串与url编码的转换实例
2018/05/10 Python
点球小游戏python脚本
2018/05/22 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
python实现计数排序与桶排序实例代码
2019/03/28 Python
python list多级排序知识点总结
2019/10/23 Python
wxPython实现列表增删改查功能
2019/11/19 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
python打开文件的方式有哪些
2020/06/29 Python
css3动画过渡实现鼠标跟随导航效果
2018/02/08 HTML / CSS
消防安全员岗位职责
2014/03/10 职场文书
2014最新实习证明模板
2014/10/02 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
《雷雨》教学反思
2016/02/20 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers