本文实例使用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怎么放音乐_[宜配屋]听图阁相关推荐

  1. python 抽奖 配音乐_[宜配屋]听图阁

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

  2. python上下文管理关键字_[宜配屋]听图阁

    前言 如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 "with" 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器. 对于系统资源如文件 ...

  3. python tkinter布局混用_[宜配屋]听图阁

    这篇文章主要介绍了python tkinter控件布局项目实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码部分: from tkinter ...

  4. 太极图python自定义函数绘制_[宜配屋]听图阁

    效果如下所示: # -*- coding: utf-8 -*- import turtle # 绘制太极图函数 def draw_TJT(R): turtle.screensize(800, 600, ...

  5. python图片横向合并_[宜配屋]听图阁

    起因: 有一批数据需要每个月进行分析,数据存储在excel中,行标题一致,需要横向合并进行分析. 数据示意: 具有多个 代码: # -*- coding: utf-8 -*- "" ...

  6. python写抽奖转盘_[宜配屋]听图阁

    本文实例为大家分享了python实现转盘效果的具体代码,供大家参考,具体内容如下 #抽奖 面向对象版本 import tkinter import time import threading clas ...

  7. python画e指数函数_[宜配屋]听图阁

    这里用Python逼近函数y = exp(x);同样使用泰勒函数去逼近: exp(x) = 1 + x + (x)^2/(2!) + .. + (x)^n/(n!) + ... #!/usr/bin/ ...

  8. python解图片迷宫_[宜配屋]听图阁

    译注:原文是StackOverflow上一个如何用程序读取迷宫图片并求解的问题,几位参与者热烈地讨论并给出了自己的代码,涉及到用Python对图片的处理以及广度优先(BFS)算法等. 问题by Why ...

  9. python echo(msg) 字符串_[宜配屋]听图阁

    本文实例讲述了python实现动态创建类的方法.分享给大家供大家参考,具体如下: python作为动态语言,如何在运行时动态创建类呢(python Creating classes dynamical ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:打篮球
  2. cdmp不停增长 oracle_Stream异常导致Oracle不断产生trc文件
  3. HTML5 之 新特性 + 新对象
  4. day38 19-Spring整合web开发
  5. vue前端框架面试问题汇总,附答案
  6. Go map 转 slice
  7. springboot+vue全栈开发_全栈的自我修养: 002使用@vue/cli进行vue环境搭建 (使用Vue,SpringBoot,Flask完成前后端分离)...
  8. c语言除法的ns流程图,ns流程图(c语言ns流程图怎么画)
  9. 【labelme】数据标注工具
  10. 安装完永中office2009不能正常启动
  11. pytorch自定义Dataset,torch加载自己的numpy数据集,torch-cnn训练numpy进行回归
  12. 加泰罗尼亚理工大学 计算机 排名,加泰罗尼亚理工大学排名
  13. 网络直播课程:神马是敏捷?(直播时间:2014-7-14 20:00-21:00)
  14. [MFC] CList
  15. 如何用手机快速图片转文字呢?2个进阶教程,详细教程教你完成
  16. 文本 去除重复行(sublime Text3 ,正则表达式)
  17. MFC画带箭头的直线
  18. 互联网日报 | 5月2日 星期日 | 五一档总票房破5亿;中国联通在香港正式推出5G服务;欧盟首次对苹果发起反垄断诉讼
  19. 金融机房托管解决方案
  20. 解决Lua获取unity 文本内容时存在\u200B(8203)字符问题

热门文章

  1. 计算机无法快速预览pdf,常见电脑问题解决大全.pdf
  2. 现实世界的Windows Azure:访问海军研究局破坏性业务技术总监Dano DeBrou
  3. 阿克曼转向机制的车体控制
  4. 离散数学实验一 真值计算
  5. 各种反掩码的计算方法
  6. 如何使用ABBYY FineReader 14标记文本
  7. 软件编程网络资源汇总 .
  8. OPPOA31_官方线刷包_救砖包_解账户锁
  9. 手把手教你在STM32上实现OLED视频播放(很简单也很硬很肝!)
  10. (题目) (思维+栈)扶桑号战列舰