首頁  >  文章  >  後端開發  >  Python實作線上音樂播放器範例

Python實作線上音樂播放器範例

高洛峰
高洛峰原創
2017-03-06 11:32:313246瀏覽

這篇文章主要為大家詳細介紹了Python實現線上音樂播放器的相關資料,具有一定的參考價值,有興趣的小伙伴們可以參考一下

最近這幾天,學習了一下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(&#39;<Double-Button-1>&#39;,play)
 listBox.pack()
 
 root.mainloop()
 
def searchM():
 global m_List 
 itemCount = 50
 
 if not text.get():
  tkMessageBox.showinfo(&#39;温馨提示&#39;,&#39;您可以输入以下内容进行搜索\n1.歌曲名\n2.歌手名\n3.部分歌词&#39;)
  return
 
 #获得输入的歌名
 url = &#39;http://s.music.163.com/search/get/?type=1&s=%s&limit=%s&#39;%(text.get(),itemCount)
  
 #get请求
 header = {&#39;User-Agent&#39;:&#39;Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36&#39;}
 html = requests.get(url,header)
 data = json.loads(html.text)
 m_List = []
 
 try:
  listBox.delete(0,listBox.size())
  for MusicData in data[&#39;result&#39;][&#39;songs&#39;]:
   listBox.insert(END,MusicData[&#39;name&#39;] +&#39;------&#39;+&#39;(&#39; +MusicData[&#39;artists&#39;][0][&#39;name&#39;] + &#39;)&#39;)
   m_List.append(MusicData[&#39;audio&#39;])
 except Exception as e: 
  tkMessageBox.showinfo(&#39;温馨提示&#39;,&#39;查询过程出现错误,请重试&#39;)
  #print &#39;查询过程出现错误,请重试&#39;
  
  
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__ == &#39;__main__&#39;:
 main()

程式運行結果:

以上就是本文的全部內容,希望對大家的學習有幫助,也希望大家多多支援PHP中文網。

更多Python實現線上音樂播放器範例相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn