开源项目——简易界面音乐播放器(基于python3的pygame库和tkinter库)
2021/7/29 17:35:55
本文主要是介绍开源项目——简易界面音乐播放器(基于python3的pygame库和tkinter库),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1.操作演示
运行程序,选择音乐所在的文件夹:
选择后即可播放音乐:
2. 代码
import os import pygame import tkinter import tkinter.filedialog from mutagen.id3 import ID3 root = tkinter.Tk() root.minsize(300, 300) listofsongs = [] realnames = [] v = tkinter.StringVar() songlabel = tkinter.Label(root, textvariable=v, width=35) index = 0 def nextsong(event): global index if index < len(listofsongs) - 1: index += 1 else: index = 0; pygame.mixer.music.load(listofsongs[index]) pygame.mixer.music.play() updatelabel() def previoussong(event): global index if index > 0 : index -= 1 else: index = len(listofsongs) - 1 pygame.mixer.music.load(listofsongs[index]) pygame.mixer.music.play() updatelabel() def stopsong(event): pygame.mixer.music.stop() v.set("") def updatelabel(): global index v.set(realnames[index]) def directorychooser(): directory = tkinter.filedialog.askdirectory() os.chdir(directory) for files in os.listdir(directory): if files.endswith('.mp3'): realdir = os.path.realpath(files) audio = ID3(realdir) realnames.append(audio['TIT2'].text[0]) ''' 用四个字符标识一个帧,说明一个帧的内容含义,常用的对照如下: TIT2=标题表示内容为这首歌的标题,下同 TPE1=作者 TALB=专集 TRCK=音轨格式:N/M 其中N 为专集中的第N 首,M为专集中共M 首,N和M 为ASCII 码表示的数字 TYER=年代是用ASCII 码表示的数字 TCON=类型直接用字符串表示 COMM=备注格式:”eng\0备注内容”,其中eng 表示备注所使用的自然语言 ''' listofsongs.append(files) # print(files) pygame.mixer.init() pygame.mixer.music.load(listofsongs[0]) pygame.mixer.music.play() directorychooser() label = tkinter.Label(root, text="一款简易的音乐播放器") label.pack() listbox = tkinter.Listbox(root) listbox.pack() # List of songs realnames.reverse() for item in realnames: listbox.insert(0, item) realnames.reverse() nextbutton = tkinter.Button(root, text='下一曲') nextbutton.pack() previousbutton = tkinter.Button(root, text="上一曲") previousbutton.pack() stopbutton = tkinter.Button(root, text="停止播放") stopbutton.pack() nextbutton.bind("<Button-1>", nextsong) previousbutton.bind("<Button-1>", previoussong) stopbutton.bind('<Button-1>', stopsong) songlabel.pack() root.mainloop()
3.注意
发生异常: KeyError 'TIT2'
keyerror一般是你使用字典里不存在的key产生的错误,在本项目中realnames.append(audio['TIT2'].text[0]) 是一句容易出错的话。这是通过函数对音乐文件信息的识别。TIT2=标题、TPE1=作者、TALB=专集。
但是下载下来的音乐文件很多信息是残缺的。
所以在使用的时候需要注意下。
可以通过读取文件名来优化这个bug。
这篇关于开源项目——简易界面音乐播放器(基于python3的pygame库和tkinter库)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享