Python—实现本地音乐播放器(添加/播放/暂停/下一首/上一首/音量/打开超链接)
1.样例
2.分析
- 1.播放器界面
- 2.功能
2.1播放器界面
- button:添加/播放/暂停/下一首/上一首
- Scale:音量条
- Label
2.2功能
2.2.1添加音乐,选择文件夹,显示文件夹里.Mp3文件
defbuttonAddClick(): #添加文件#声明全局变量folder,resglobalfolderglobalresifnotfolder: folder=tkinter.filedialog.askdirectory() #列表指导式,if判断是否结尾是('.mp3','.wav','.ogg','.m4a','.flac'),识别音频文件#musics得到文件内容musics= [folder+'\\'+musicformusicinos.listdir(folder) ifmusic.endswith(('.mp3'))] ret= [] foriinmusics: ret.append(i.split('\\')[1:]) #切片,取到:后面的操作res.append(i.replace('\\', '/')) #将i张的\\替换成/,列表添加到resvar2=StringVar() var2.set(ret) #将ret列表去重,set集合lb=Listbox(window, listvariable=var2) #列表箱lb.place(x=405, y=170, width=350, height=190)
2.2.2播放音乐,开始播放第一首音乐,按钮由"播放"变为"暂停",点击"暂停",变为"播放",播放显示Playing…
defbuttonPlayClick(): #点击播放buttonNext['state'] ='normal'buttonPrev['state'] ='normal'#选择要播放的音乐文件夹ifpause_resume.get() =='播放': pause_resume.set('暂停') globalfolderifnotfolder: folder=tkinter.filedialog.askdirectory() ifnotfolder: returnglobalplayingplaying=True#创建一个线程来播放音乐,当前主线程来接收用户操作t=threading.Thread(target=play) #start执行线程t.start() elifpause_resume.get() =='暂停': pygame.mixer.music.pause() pause_resume.set('继续') elifpause_resume.get() =='继续': pygame.mixer.music.unpause() pause_resume.set('暂停')
2.2.3下一首,点击切换播放下一首音乐
defbuttonNextClick(): #下一首,需要先暂停当前音乐,而主线程接收用户操作globalplayingpalying=Falsepygame.mixer.music.stop() globalnumiflen(res) ==num: num=0playing=True#必须创建一个线程来播放音乐,当前主线程来接收用户操作t=threading.Thread(target=play) #start执行线程t.start()
2.2.4上一首,点击切换播放上一首音乐
defbuttonPrevClick(): #上一首globalplayingpalying=Falsepygame.mixer.music.stop() globalnumifnum==0: num=len(res) -2elifnum==len(res) -1: num-=2else: num-=2playing=True#必须创建一个线程来播放音乐,当前主线程来接收用户操作t=threading.Thread(target=play) #start执行线程t.start()
2.2.5音量,滑动控制音量
defcontrol_voice(value=0.5): #声音控制#value:0.0-1.0pygame.mixer.music.set_volume(float(value))
2.2.6点击打开网页
#打开超链接defopen_url(event): webbrowser.open("http://www.romantik.top:81/", new=0)
3.源码
源代码下载链接:https://download.csdn.net/download/qq_20185737/13692920?spm=1001.2014.3001.5501