python 简易音乐盒子
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 简易音乐盒子相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from Tkinter import *
import tkMessageBox
import urllib
def music():
if e1.get() == ‘‘:
tkMessageBox.showinfo(‘提示:‘,‘请先输入歌曲名字再搜索‘)
return
name = e1.get().encode(‘utf-8‘)
name = urllib.quote(name)
html = urllib.urlopen(‘http://music.163.com/#/search/m/?id=347230&s=%s&type=1‘ %name).read()
print html
def play():
pass
top = Tk() #top就等同于窗口
top.title(‘音乐搜索‘) #就是窗口顶部的标题
top.geometry(‘500x300+600+300‘) #设置窗口的大小:长500,宽300,600为横坐标,300为纵坐标
top.resizable(width=False,height=False) #设置窗口大小不能变大变小
e1 = Entry(top) #e1 就是搜索框,Entry(top)就是让搜索框在top添加
e1.pack() #让搜索框显示
B = Button(top,text=‘搜索‘,command = music).pack()
var = StringVar()
Lb = Listbox(top,width=50,listvariable=var)
Lb.bind(‘<Double-Button-1>‘,play)
Lb.pack()
top.mainloop()
###################可用版#########################
#coding:utf-8
from Tkinter import *
import tkMessageBox
import urllib
import json
import mp3play
list_url = []
list_name = []
def music():
text = entry.get()
text = text.encode(‘utf-8‘)
text = urllib.quote(text)
if text == ‘‘:
tkMessageBox.showinfo(‘温馨提示‘,‘您可以输入以下内容进行搜索\n1.歌曲名\n2.歌手名\n3.部分歌词‘)
return
html=urllib.urlopen(‘http://s.music.163.com/search/get/?type=1&s=%s&limit=9‘ %text).read()
text = json.loads(html)
list_s = text[‘result‘][‘songs‘]
#list_url = []
#global list_url
#list_name = []
#global list_name
listbox.delete(0,listbox.size())
for i in list_s:
listbox.insert(END,i[‘name‘]+ "("+i[‘artists‘][0][‘name‘]+")")
list_url.append(i[‘audio‘])
list_name.append(i[‘name‘])
def play(event):
global mp3
sy = listbox.curselection()[0]
mp3 = mp3play.load(list_url[sy])
mp3.play()
urllib.urlretrieve(list_url[sy], list_name[sy] + ‘.mp3‘)
root = Tk()
root.title("Rain Music")
root.geometry(‘+300+100‘)
entry = Entry(root)
entry.pack()
button = Button(root,text=‘搜索歌曲‘,command=music)
button.pack()
listbox = Listbox(root,width=50)
listbox.bind(‘<Double-Button-1>‘,play)
listbox.pack()
mainloop()
以上是关于python 简易音乐盒子的主要内容,如果未能解决你的问题,请参考以下文章