最新消息:

python tk例子,古董音乐播放器exe

Python学习 追逐 129浏览 0评论

为什么说是古董极音乐播放器,界面low,实在是low,没有一点优化的痕迹,使用python tkinter编写,基本音乐播放功能可以实现,比如播放,暂停,上一曲,下一曲等,当然有部分功能还需要完善,本渣渣是调包侠,该exe源码非原创!

古董播放器exe

 

exe打包下载:

链接: 

https://pan.baidu.com/s/1ZVJGqpxF5t0Z3wdDmeJHHA 

提取码: 

mjfs

古董极音乐播放器-微信公众号:二爷记

古董极音乐播放器-微信公众号:二爷记

 

古董音乐播放器exe特点:

1.low

2.小,轻量级

3.无病毒(我这里下载肯定是无的!)

4..除了我的广告,几乎无广告

播放器 打包 导入歌曲

如果你厌倦了广告,如果你想要单纯的播放,如果你想要学习,不妨下载玩玩!

感谢原作者!

 

附源码:

#来源:https://zhuanlan.zhihu.com/p/40379098

from tkinter import *

from tkinter import filedialog

from traceback import *

from win32com.client import Dispatch

import time,eyed3,threading

 

name = []

 

def openfile(index = [1]):

global total,name

 

filenames = filedialog.askopenfilenames(title =“古董音乐播放器-微信公众号:二爷记”,filetypes =[(“mp3文件”,“*.mp3”),(“WMA文件”,“*.wma”),(“WAV文件”,“*.wav”)])

if filenames:

for i in range(len(filenames)):

media = wmp.newMedia(filenames[i])

wmp.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]),使用wmp.currentMedia.name更好,在per函数中

per_thread = threading.Thread(target = per)

per_thread.daemnon = True

wmp.controls.play()

per_thread.start()

#print(wmp.currentMedia.duration)#放到暂停那里居然可以用,而这里不行

 

 

def per():

global total

while wmp.playState !=1:

progress_scal.set(int(wmp.controls.currentPosition))

progress_scal.config(label = wmp.controls.currentPositionString)

progress_scal.config(to = total,tickinterval = 50)

time.sleep(1)

root.title(“%s” % wmp.currentMedia.name)

 

def stop():

wmp.controls.stop()

def pause(event = None):

wmp.controls.pause()

 

def uselist():

pass

def fullscr():

pass

def exitit():

root.destroy()

def Previous_it():

wmp.controls.previous()

def Next_it():

wmp.controls.next()

def Volume_ctr(none):

wmp.settings.Volume = vio_scale.get()

def Volume_add(i=[0]):

wmp.settings.Volume =wmp.settings.Volume+5

i.append(wmp.settings.Volume)

vio_scale.set(wmp.settings.Volume)

def Volume_minus(i=[0]):

wmp.settings.Volume = wmp.settings.Volume –5

i.append(wmp.settings.Volume)

vio_scale.set(wmp.settings.Volume)

def Scale_ctr(none):

 

wmp.controls.currentPosition = var_scale.get()

print(wmp.currentMedia.duration)

def Clear_list():

wmp.currentPlaylist.clear()

list_name.delete(1.0,END)

name = []

index = []

def List_random():

wmp.settings.setMode(“shuffle”,True)

play()

def List_loop():

wmp.settings.setMode(“loop”,True)

play()

 

root =Tk()

root.title(‘古董音乐播放器-微信公众号:二爷记’)

wmp = Dispatch(“WMPlayer.OCX”)

 

canvas = Canvas(root,width =150,height = 100,bg = “white”)

”’

#导入图片

img = PhotoImage(file = ‘111.gif’)

canvas.create_image((80,50),image = img)

canvas.place(x=0,y=0)

canvas.coords(img,100,50)

canvas.grid(row =0,column = 0,sticky = “nw”,rowspan =2)

”’

 

 

 

progress_lab = LabelFrame(root,text = “播放进度”)

progress_lab.grid(row =2,column =0,sticky = “we”,rowspan = 2)

var_scale = DoubleVar()

progress_scal = Scale(progress_lab,orient = HORIZONTAL,showvalue = 0,length =180,variable = var_scale)

progress_scal.bind(“<Button-1>”,pause)

progress_scal.bind(“”)

progress_scal.bind(“<ButtonRelease-1>”,play)

progress_scal.grid(row =3,column =0)

 

modee_lab = LabelFrame(root,text = “播放模式”)

modee_lab.grid(row =4,column =0,rowspan =2,sticky = “ws”)

var_mode = IntVar()

randomradio = Radiobutton(modee_lab,variable = var_mode,value = 1,text =“随机播放”,command =List_random )

randomradio.grid(row =4,column =2)

inturnradio = Radiobutton(modee_lab,variable = var_mode,value =2,text= “顺序播放”,command = play)

inturnradio.grid(row=4,column =3)

alloop = Radiobutton(modee_lab,variable = var_mode,value =2,text = “全部循环播放”,command = List_loop)

alloop.grid(row =5,column = 2)

sinloop = Radiobutton(modee_lab,variable = var_mode,value =3,text = “单曲循环播放”)

sinloop.grid(row =5,column =3)

previous_play = Button(modee_lab,text = “上一曲”,command = Previous_it)

previous_play.grid(row =6,column =2,rowspan =2,pady =10)

next_play = Button(modee_lab,text = “下一曲”,command = Next_it)

next_play.grid(row =6,column =3,rowspan =2,pady =10)

 

var_volume = IntVar()

vioce_lab = LabelFrame(root,text = “音量控制”)

vioce_lab.grid(row =8,column =0,sticky = “wes”)

vio_scale = Scale(vioce_lab,orient = HORIZONTAL,length =170,variable = var_volume,command =Volume_ctr)

vio_scale.set(30)

vio_scale.grid(row =8,column =0)

vio_plus = Button(vioce_lab,width =8,text = “增加音量+”,command =Volume_add)

vio_plus.grid(row =9,column =0,sticky = “w”)

vio_minus = Button(vioce_lab,width =8,text =“减少音量-“,command = Volume_minus)

vio_minus.grid(row =9,column =0,sticky =“e”)

 

ctr_lab = LabelFrame(root,text = “播放控制”,height =130)

ctr_lab.grid(row =0,column =1,rowspan =12,sticky = “ns”)

btn_open = Button(ctr_lab,text =“打开音乐文件”,width =10,command = openfile)

btn_open.grid(row=0,column =1)

btn_play = Button(ctr_lab,text =“播放”,width =10,command = play)

btn_play.grid(row =1,column =1,pady =5)

btn_stop = Button(ctr_lab,text =“停止”,width =10,command = stop)

btn_stop.grid(row =2,column =1,pady =5)

btn_pause = Button(ctr_lab,text =“暂停”,width =10,command = pause)

btn_pause.grid(row =3,column =1,pady =5)

 

btn_playlist = Button(ctr_lab,text =“新建播放列表”,width =10,command = uselist)

btn_playlist.grid(row =4,column =1,pady =5)

 

 

listimport = Button(ctr_lab,width =10,text = “导入列表”)

listimport.grid(row =6,column =1,sticky =“nw”,pady =5)

listexport = Button(ctr_lab,width =10,text = “导出列表”)

listexport.grid(row =7,column =1,sticky = “nw”,pady =5)

listdel_all = Button(ctr_lab,width =10,text = “清空列表”,command = Clear_list)

listdel_all.grid(row =8,column =1,sticky =“nw”,pady =5)

listdel_sel= Button(ctr_lab,width =10,text = “删除歌曲”)

listdel_sel.grid(row =12,column =1,sticky = “nw”,pady =5)

savelist_btn = Button(ctr_lab,text = “保存为列表”)

savelist_btn.grid(row=9,column =1)

min_btn = Button(ctr_lab,text = “最小化窗口”,command = root.iconify)

min_btn.grid(row =13,column =1)

 

##time_lab= Label(root,width =20,height =2,text =”现在时间为:”)

##time_lab.grid(row =12,column =0,sticky = “nw”,pady =5)

time_text= Text(root,width =30,height =3,foreground =“green”)

time_text.grid(row =10,column =0,sticky = “nw”,pady =5)

 

list_name = Text(root,height =18,width =50)

list_name.grid(row =0,column =2,sticky = “n”,rowspan =6)

 

 

root.mainloop()

 

转载请注明:二爷记 » python tk例子,古董音乐播放器exe

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址