各位用户为了找寻关于Python实现在线音乐播放器的资料费劲了很多周折。这里教程网为您整理了关于Python实现在线音乐播放器的相关资料,仅供查阅,以下为您介绍关于Python实现在线音乐播放器的详细内容

最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过requests模块,get请求将数据获得,使用Json模块进行数据的解析,最终使用python的mp3play库进行对音乐的在线播放,以下是该程序的源码。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 #!/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()

程序运行结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。