我希望能够使用python通过播放列表播放多首歌曲,但它只播放列表中的最后一首歌曲。请帮忙。
from pygame import mixer # Load the required library
from os import listdir
k = listdir('C:/LOCAL')
print(k)
mixer.init()
for x in k:
y = "C:/LOCAL/" + x
print y
mixer.music.queue(y)
mixer.music.load(y)
mixer.music.play()
答案 0 :(得分:2)
你的问题是你认为用pygame播放音乐会暂停音乐直到音乐结束 - 事实并非如此。结果,它尝试开始一首歌,然后它开始另一首,另一首等等。
有几种方法可以尝试纠正这个问题。你可以:
我将假设你想做选项2,因为你的代码可以更好地使用它。
要获取MP3文件的长度(我没有尝试过任何其他类型),您可以使用Mutagen库。
获取MP3文件长度的一些示例代码(以秒为单位):
from mutagen.mp3 import MP3
tracklength = MP3("/path/to/song.mp3").info.length
然后,在继续循环的下一次迭代之前,您可以使用y
和time.sleep
替换返回的时间量。
希望有所帮助。
(另外,您无需在加载文件之前对其进行排队 - 仅load
和play
)