本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下

1.先使用Tkinter库写界面

2.写点击按钮触发的事件

(1).使用网易音乐的api,返回数据包装成json格式数据,解析数据

(2)涉及到多线程的问题未解决,一个软件默认打开一个线程,当播放歌曲时,显示界面就会卡掉,导致python停止工作

代码:

#coding=utf-8

from Tkinter import *

import tkMessageBox

import urllib

import json

import mp3play

import time

musicList = []

#定义点击按钮响应的函数

def music():

#print "按钮点击"

#先判断用户是否在编辑框输入了内容

if E.get() == '':

#发出警告,需要先import tkMessageBox

tkMessageBox.showinfo("提示:","请先输入内容!")

#使用return,当满足前面的条件时,不在往下执行

return

#使用网易api,发送请求,需要import urllib

#报错,需要将汉字编码程ascii,才能添加到链接中

name = E.get().encode('utf-8')

name = urllib.quote(name)

html = urllib.urlopen('http://s.music.163.com/search/get/?type=1&s=%s&limit=9'%name).read()

#返回json格式数据,可用正则匹配需要数据,也可使用json.loads()

print html

#将返回文件转化为json格式,提取所需要的数据,需要import json

a = json.loads(html)

#print a

print a[u'result'][u'songs'][0][u'album'][u'name']

#将所有结果显示在列表中

#print len(a[u'result'][u'songs'][0])

for i in range(len(a[u'result'][u'songs'][0])):

#注意insert参数

LB.insert(i,a[u'result'][u'songs'][i][u'album'][u'name']+"("+a[u'result'][u'songs'][i][u'artists'][0][u'name']+")")

#先获取到歌曲url列表

musicList.append(a[u'result'][u'songs'][i][u'audio'])

#定义双击列表响应函数

def play(event):

#获取点击后返回的结果curselection()

#print LB.curselection()[0]

urlnum = LB.curselection()[0]

#不用流媒体播放,先下载下来再播放

# urllib.urlretrieve(musicList[urlnum],'1.mp3')

# #播放歌曲,调用import mp3play

# time.sleep(50)

clip = mp3play.load('1.mp3')

clip.play()

#设置播放时间import time

time.sleep(min(300, clip.seconds()))

#死机了,无法响应,因为线程的问题!!!!!!

#一个线程同一时间只能做一件事情,放歌时需再开一个线程

#创建父窗口对象,

top = Tk()

#可以设置窗口的属性,如:标题,大小

top.title("在线音乐播放器——张强")

top.geometry('500x300+800+300')

#创建编辑框,放到父窗口top上,用pack显示

E = Entry(top)

E.pack()

#创建按钮,定义按钮触发的函数command

B = Button(top,text="搜 索",command = music)

B.pack()

#定义列表的响应函数

LB = Listbox(top,width = '50',listvariable = StringVar())

#绑定触发事件的方式-双击左键,和响应函数

LB.bind('',play)

LB.pack()#要放到最后

#定义标签

label = Label(top,text = "欢迎使用!",fg = 'red')

label.pack()

#循环向windows发送消息,用于显示窗口

top.mainloop()

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

python调用默认播放器_python使用Tkinter实现在线音乐播放器相关推荐

  1. python播放网络音乐_python使用Tkinter实现在线音乐播放器

    本文实例使用Tkinter实现在线音乐播放器的具体代码,供大家参考,具体内容如下 1.先使用Tkinter库写界面 2.写点击按钮触发的事件 (1).使用网易音乐的api,返回数据包装成json格式数 ...

  2. python开发音乐播放器教程_python开发简易版在线音乐播放器示例代码

    在线音乐播放器,使用python的Tkinter库做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口,通过urllib.urlopen模块打开网址,使用Json模块进行数 ...

  3. python写音乐播放器_python 模拟(简易)音乐播放器

    模拟一个在线音乐播放程序 # 1, 使用C/S架构来进行设计,分别写出客户端和服务器程序 # 2,客户端链接服务器之后,服务器向用户提示可以选择的歌曲列表,用户选择后开始播放(音频文件存放在本地即可) ...

  4. 【基于Qt的在线音乐播放器】

    基于Qt的在线音乐播放器 项目功能: 本在线音乐播放器的功能在于创建一个音乐播放器页面,可以实现搜索功能通过HTTP协议获取网络中数据并解析出来,播放搜索到的歌曲并展示相关信息.效果如图: 相关类及功 ...

  5. j2me在线音乐播放器技术分析

    j2me在线音乐播放器技术分析 1.在线音乐播放器: 音乐资源存储在服务器端,手机客户端通过无线网络读取服务器端音乐资源进行播放,播放器具有播放.暂停.快进.快退.循环播放.显示播放进度.时间等功能. ...

  6. 基于ssm的在线音乐播放网站的设计与实现

    摘要 随着计算机网络技术的高速发展,很多校园网.街道网络和公司网络都能很好的提供给人们快速的网络,正好能满足热爱音乐的网友在网上播放音乐和分享音乐的需要.依据网友的需求,在线音乐播放网站正式开始发展. ...

  7. python播放在线音乐_Python实现在线音乐播放器

    最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目,使用Python的库Tkinsert做了一个界面,感觉这个库使用起来还是挺方便的,音乐的数据来自网易云音乐的一个接口, ...

  8. python播放网络音乐_Python实现在线音乐播放器示例

    这篇文章主要为大家详细介绍了Python实现在线音乐播放器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 最近这几天,学习了一下python,对于爬虫比较感兴趣,就做了一个简单的爬虫项目 ...

  9. python实现在线音乐播放器(懒皮鼠音乐)

    python实现在线音乐播放器(懒皮鼠音乐) 利用qt设计requests库实现在线音乐播放 文章目录 python实现在线音乐播放器(懒皮鼠音乐) 前言 一.qt设计师设计界面 二.使用步骤 1.引 ...

最新文章

  1. python八大排序算法 间书_python八大排序算法
  2. java线程池的工作原理_Java 线程池的介绍以及工作原理
  3. 小型音乐播放器插件APlayer.js的简单使用例子
  4. MML命令_华为TD-LTE后台常用MML命令操作
  5. 微信小程序开发教程第七章:微信小程序编辑名片页面开发
  6. 面试题 锁消除是什么
  7. 解决: Your ApplicationContext is unlikely to start due to a @ComponentScan of the default
  8. mysql: order by, group by ,having, select, where 执行 顺序
  9. 自适应滤波器原理第四版计算机实验,自适应滤波器原理(中文第4版)答案
  10. linux运行出现断错误,在linux下代码运行出现段错误,求大神
  11. Banner中利用Jquery隐藏显示下方DIV块
  12. mate20html查看器,华为Mate20系列迎重大升级 系统支持方舟编译器
  13. linux添加ctrl c,Linux ctrl-c explained(ctrl-c 详解)
  14. 使用elastic job 不分片任务加载失败的可能原因
  15. 2.1 Hadoop环境搭建
  16. iOS App所需图标尺寸
  17. Liunx官网下载步骤
  18. UGUI Canvas(画布)详解
  19. 企业电子采购管理系统解决方案:供应商内外协同,全程电子化采购系统管理
  20. SVN更新出错 提示:working copy XXX locked

热门文章

  1. 怎么选择Tomcat对应的JDK版本
  2. 以太网PHY寄存器分析
  3. http 常用的默认端口号
  4. 数据分析实战 | 银行 “信贷” 客户的可视化分析
  5. 如何制作和发布网页(上)
  6. CSDN博客专用动态图小程序的推荐---ScreentoGIF教程
  7. Directshow完整介绍
  8. linux C之alarm函数(更改)
  9. 《Java核心技术面试精讲--杨晓峰》学习笔记目录
  10. css制作自动旋转的钟表