接下来,我们要实现播放进度。实现原理就不是不断的画白色的矩形,根据播放时间和歌曲总时长的比例计算矩形当前宽度。要解决的问题:
- 如何获取mp3的总时长
- 如何不断重复画矩形?
- 如何画矩形
一、获取mp3的总时长
我们可以使用mutagen模块获取mp3的总时长,以及mp3本身的一些信息。Mutagen是用于处理音频元数据的python模块。它支持ASF、FLAC、MP4、Monkey¡¯s Audio、MP3、Musepack、Ogg Opus、Ogg FLAC、Ogg Speex、Ogg Theora、Ogg Vorbis、True Audio、WavPack、OptimFROG和AIFF 音频文件。 它能精确计算MP3文件的比特率和长度。
1、安装
pip install mutagen
2、使用
from mutagen.mp3 import MP3 #导入
# path是音乐文件名
length = MP3(path)length = mp3_info.info.length # 歌曲时长(秒)
song_name = mp3_info.tags['title'] # 歌名
定义全局字典info,保存mp3本身的信息,然后在播放函数里获取mp3的信息
MP3_INFO = {} # 全局字典
# 播放指定的歌曲
def play(index): # index 列表的下标
pygame.mixer.music.stop()
# 播放音乐
music = pygame.mixer.music.load(song_list[index])
MP3_INFO.clear()
mp3_info = MP3(song_list[ind