Python Pygame没有';t播放带有诱变剂的mp3文件
在使用Python Pygame没有';t播放带有诱变剂的mp3文件,python,pygame,tagging,mutagen,Python,Pygame,Tagging,Mutagen,在使用诱变剂标记音频文件后,pygame似乎不再能够播放该文件。但是,它成功加载了文件,对pygame.mixer.music.play()的调用不会抛出错误。我实际上使用了音乐标签库,它只是诱变剂的包装器,用于标记文件。我想知道这是否是已知的问题 标记代码 import music_tag f = music_tag.load_file('sample.mp3') f['title'] = 'Smells like teen spirit' f['artwork'] = open('nirv
诱变剂标记音频文件后,pygame似乎不再能够播放该文件。但是,它成功加载了文件,对pygame.mixer.music.play()的调用不会抛出错误。我实际上使用了音乐标签
库,它只是诱变剂
的包装器,用于标记文件。我想知道这是否是已知的问题
标记代码
import music_tag
f = music_tag.load_file('sample.mp3')
f['title'] = 'Smells like teen spirit'
f['artwork'] = open('nirvana.jpg', 'rb').read()
f.save()
播放代码
from pygame import mixer
mixer.init()
mixer.music.load('sample.mp3')
mixer.music.set_volume(0.7)
mixer.music.play(-1)
while True:
query = input()
if query == 'q':
mixer.music.stop()
break;
我还注意到,在移除标签后,pygame确实会播放文件,但播放过程确实非常非常失真,并且与文件上的实际音频非常不同。同时,其他mp3播放器可以播放相同的文件,带或不带标签。在输入之前,会阻止整个应用程序。使用向下键
事件检测何时按下q(另请参阅):
从pygame导入混合器
mixer.init()
mixer.music.load('sample.mp3')
混音器。音乐。设置音量(0.7)
混音器。音乐。播放(-1)
运行=真
运行时:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
运行=错误
如果event.type==pygame.KEYDOWN:
如果event.key==pygame.K_q:
mixer.music.stop()
运行=错误
如果我是你,我不会覆盖你读过的同一个文件。试着先改变一下。还可以尝试使用任何mp3播放器播放标记的文件。顺便说一句,该示例使用带open的(…
,它的作用是再次关闭图像文件–这是您不做但应该做的事情do@WalterTross谢谢你的建议。用其他mp3播放器如vlc
和totem
播放标记的歌曲是可行的。问题似乎不是文件是如何打开的。我也不明白你的意思y没有覆盖同一个文件..我想,f.save()
会覆盖以前读过的同一个文件。一般来说,这是个坏主意,尽管我注意到(在写下我的评论后)文档中的示例也有同样的作用。@WalterTross我不知道如何不覆盖同一个文件