Python实现在线音乐播放器

发布时间 - 2026-01-10 23:24:45    点击率:

最近这几天,学习了一下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播放器  # python3音乐播放器简单实现代码  # python实现可下载音乐的音乐播放器  # 基于python实现音乐播放器代码实例  # 自己用python做的一款超炫酷音乐播放器  # python开发简易版在线音乐播放器  # python实现简易云音乐播放器  # 基于Python实现音乐播放器的实现示例代码  # python 制作简单的音乐播放器  # Python编程实现简易的音乐播放器基本操作  # Python制作简易音乐播放器的实现步骤记录  # 网易  # 温馨提示  # 出现错误  # 请重试  # 您可以  # 感兴趣  # 这几天  # 就做  # 大家多多  # 宋体  # winfo_screenwidth  # screenwidth  # width  # height  # size  # dx  # screenheight  # winfo_screenheight  # root  # json 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速搭建高效简练网站?  如何在阿里云购买域名并搭建网站?  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  Android GridView 滑动条设置一直显示状态(推荐)  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  javascript日期怎么处理_如何格式化输出  微信小程序 闭包写法详细介绍  微信小程序 HTTPS报错整理常见问题及解决方案  php 三元运算符实例详细介绍  如何在Windows虚拟主机上快速搭建网站?  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何使用Vite进行前端资源打包?(配置示例)  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  香港服务器WordPress建站指南:SEO优化与高效部署策略  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  Android 常见的图片加载框架详细介绍  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  在线制作视频的网站有哪些,电脑如何制作视频短片?  如何快速生成高效建站系统源代码?  悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤  JavaScript如何实现路由_前端路由原理是什么  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  如何快速打造个性化非模板自助建站?  网站建设要注意的标准 促进网站用户好感度!  高防服务器租用首荐平台,企业级优惠套餐快速部署  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Python函数文档自动校验_规范解析【教程】  如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程  javascript中的try catch异常捕获机制用法分析  JS弹性运动实现方法分析  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  实例解析Array和String方法  如何在服务器上配置二级域名建站?  微信小程序 scroll-view组件实现列表页实例代码  大连 网站制作,大连天途有线官网?  JS实现鼠标移上去显示图片或微信二维码  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何基于云服务器快速搭建个人网站?  Android仿QQ列表左滑删除操作