• 技术文章 >后端开发 >Python教程

    Python实现在线音乐播放器示例

    高洛峰高洛峰2017-03-06 11:32:31原创2166
    这篇文章主要为大家详细介绍了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('<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()

    程序运行结果:

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

    更多Python实现在线音乐播放器示例相关文章请关注PHP中文网!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python 播放器
    上一篇:python链接和操作memcache方法详解 下一篇:python开发简易版在线音乐播放器示例代码
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 总结分享Python冷门的技巧• 一文搞懂Python爬虫解析器BeautifulSoup4• 聊聊Python中列表和字典前加星号(**)• python网络爬虫方向的第三方库有哪些• python爬虫入门实战之爬取网页图片
    1/1

    PHP中文网