python3音乐播放器简单实现代码
家电修理 2023-07-16 19:17www.caominkang.com电器维修
本文实例为大家讲解了python3音乐播放器的关键代码,供大家参考,具体内容如下
from tkinter import
from traceback import
from in32.client import Dispatch
import time,eyed3,threading
name = []
def openfile(index = [1]):
global total,name
filenames = filedialog.askopenfilenames(title = "音乐播放器",filetypes =[("mp3文件",".mp3"),("WMA文件",".ma"),("WAV文件",".av")])
if filenames:
for i in range(len(filenames)):
media = mp.neMedia(filenames[i])
mp.currentPlaylist.appendItem(media)
print(filenames[i])
coco = eyed3.load(filenames[i])#eyed3模块读取mp3信息
total = int(coco.info.time_secs)
minute = int(coco.info.time_secs)//60
sec = int(coco.info.time_secs)%60
length = int(coco.info.time_secs)
name = filenames[i].split("/")
i =index[-1]
list_name.insert(END,str(i)+"."+name[-1])
list_name.insert(END," "6)
if sec >=10:
list_name.insert(END,"0%d:%d" %(minute,sec)+ "n")
else:
list_name.insert(END,"0%s:0%d" %(minute,sec)+ "n")
i = i +1
index.append(i)
def play(event = None):
#root.title("%s" % name[-1]),使用mp.currentMedia.name更好,在per函数中
per_thread = threading.Thread(target = per)
per_thread.daemnon = True
mp.controls.play()
per_thread.start()
#print(mp.currentMedia.duration)#放到暂停那里居然可以用,而这里不行
def per():
global total
hile mp.playState !=1:
progress_scal.set(int(mp.controls.currentPosition))
progress_scal.config(label = mp.controls.currentPositionString)
progress_scal.config(to = total,tickinterval = 50)
time.sleep(1)
root.title("%s" % mp.currentMedia.name)
def s():
mp.controls.s()
def pause(event = None):
mp.controls.pause()
def uselist():
pass
def fullscr():
pass
def exitit():
root.destroy()
def Previous_it():
mp.controls.previous()
def Next_it():
mp.controls.next()
def Volume_ctr(none):
mp.settings.Volume = vio_scale.get()
def Volume_add(i=[0]):
mp.settings.Volume =mp.settings.Volume+5
i.append(mp.settings.Volume)
vio_scale.set(mp.settings.Volume)
def Volume_minus(i=[0]):
mp.settings.Volume = mp.settings.Volume -5
i.append(mp.settings.Volume)
vio_scale.set(mp.settings.Volume)
def Scale_ctr(none):
mp.controls.currentPosition = var_scale.get()
print(mp.currentMedia.duration)
def Clear_list():
mp.currentPlaylist.clear()
list_name.delete(1.0,END)
name = []
index = []
def List_random():
mp.settings.setMode("shuffle",True)
play()
def List_loop():
mp.settings.setMode("loop",True)
play()
root =Tk()
mp = Dispatch("WMPlayer.OCX")
canvas = Canvas(root,idth =150,height = 100,bg = "blue")
filename = PhotoImage(file = "girl.gif")
image =canvas.create_image((0,0),image = filename)
canvas.place(x=0,y=0)
canvas.coords(image,79,50)
canvas.grid(ro =0,column = 0,sticky = "n",rospan =2)
progress_lab = Labelframe(root,text = "播放进度")
progress_lab.grid(ro =2,column =0,sticky = "e",rospan = 2)
var_scale = DoubleVar()
progress_scal = Scale(progress_lab,orient = HORIZONTAL,shovalue = 0,length =180,variable = var_scale)
#progress_scal.bind("",pause)
#progress_scal.bind("")
#progress_scal.bind("",play)
progress_scal.grid(ro =3,column =0)
modee_lab = Labelframe(root,text = "播放模式")
modee_lab.grid(ro =4,column =0,rospan =4,sticky = "s")
var_mode = IntVar()
randomradio = Radiobutton(modee_lab,variable = var_mode,value = 1,text ="随机播放",mand =List_random )
randomradio.grid(ro =4,column =2)
inturnradio = Radiobutton(modee_lab,variable = var_mode,value =2,text= "顺序播放",mand = play)
inturnradio.grid(ro=4,column =3)
alloop = Radiobutton(modee_lab,variable = var_mode,value =2,text = "全部循环播放",mand = List_loop)
alloop.grid(ro =5,column = 2)
sinloop = Radiobutton(modee_lab,variable = var_mode,value =3,text = "单曲循环播放")
sinloop.grid(ro =5,column =3)
previous_play = Button(modee_lab,text = "上一曲",height =1,mand = Previous_it)
previous_play.grid(ro =6,column =2,rospan =2,pady =5)
next_play = Button(modee_lab,text = "下一曲",height =1,mand = Next_it)
next_play.grid(ro =6,column =3,rospan =2,pady =5)
var_volume = IntVar()
vioce_lab = Labelframe(root,text = "音量控制")
vioce_lab.grid(ro =8,column =0,sticky = "es")
vio_scale = Scale(vioce_lab,orient = HORIZONTAL,length =170,variable = var_volume,mand =Volume_ctr)
vio_scale.set(30)
vio_scale.grid(ro =8,column =0)
vio_plus = Button(vioce_lab,idth =8,text = "增加音量+",mand =Volume_add)
vio_plus.grid(ro =9,column =0,sticky = "")
vio_minus = Button(vioce_lab,idth =8,text ="减少音量-",mand = Volume_minus)
vio_minus.grid(ro =9,column =0,sticky ="e")
ctr_lab = Labelframe(root,text = "播放控制",height =130)
ctr_lab.grid(ro =0,column =1,rospan =12,sticky = "ns")
btn_open = Button(ctr_lab,text ="打开音乐文件",idth =10,mand = openfile)
btn_open.grid(ro=0,column =1)
btn_play = Button(ctr_lab,text ="播放",idth =10,mand = play)
btn_play.grid(ro =1,column =1,pady =5)
btn_s = Button(ctr_lab,text ="停止",idth =10,mand = s)
btn_s.grid(ro =2,column =1,pady =5)
btn_pause = Button(ctr_lab,text ="暂停",idth =10,mand = pause)
btn_pause.grid(ro =3,column =1,pady =5)
btn_playlist = Button(ctr_lab,text ="新建播放列表",idth =10,mand = uselist)
btn_playlist.grid(ro =4,column =1,pady =5)
listimport = Button(ctr_lab,idth =10,text = "导入列表")
listimport.grid(ro =6,column =1,sticky ="n",pady =5)
listexport = Button(ctr_lab,idth =10,text = "导出列表")
listexport.grid(ro =7,column =1,sticky = "n",pady =5)
listdel_all = Button(ctr_lab,idth =10,text = "清空列表",mand = Clear_list)
listdel_all.grid(ro =8,column =1,sticky ="n",pady =5)
listdel_sel= Button(ctr_lab,idth =10,text = "删除歌曲")
listdel_sel.grid(ro =12,column =1,sticky = "n",pady =5)
savelist_btn = Button(ctr_lab,text = "保存为列表")
savelist_btn.grid(ro=9,column =1)
min_btn = Button(ctr_lab,text = "最小化窗口",mand = root.iconify)
min_btn.grid(ro =13,column =1)
time_lab= Label(root,idth =20,height =2,text ="现在时间为:")
time_lab.grid(ro =12,column =0,sticky = "n",pady =5)
time_text= Text(root,idth =30,height =3,foreground ="green")
time_text.grid(ro =10,column =0,sticky = "n",pady =5)
list_name = Text(root,height =18,idth =110)
list_name.grid(ro =0,column =2,sticky = "n",rospan =6)
root.mainloop() 上一篇:WinXP教程:两步解除盗版Win XP警告 下一篇:iOS 13适配汇总(推荐)
空调维修
- 我的世界电脑版运行身份怎么弄出来(我的世界
- 空调抽湿是什么意思,设置抽湿的温度有什么意
- 方太燃气灶有一个打不着火 怎么修复与排查方法
- 夏季免费清洗汽车空调的宣传口号
- 清洗完空调后出现漏水现象
- iphone6能玩什么游戏(iphone6游戏)
- 如何设置电脑密码锁屏(如何设置电脑密码锁屏
- win10删除开机密码提示不符合密码策略要求
- 电脑w7显示不是正版(w7不是正版怎么解决)
- 万家乐z8热水器显示e7解决 怎么修复与排查方法
- 1匹空调多少瓦数(1匹空调多少瓦)
- 安卓手机连接电脑用什么软件好(关于安卓手机
- 电脑网页看视频卡是什么原因(爱拍看视频卡)
- 华帝燃气灶点火器一直响然后熄火怎么办:问题
- 电脑壁纸怎么换(关于电脑壁纸怎么换的介绍)
- 冬天空调的出风口应该朝什么方向(冬天空调风