问题描述
使用mutagen
pygame标记音频文件后,似乎不再能够播放该文件。但是,它将成功加载文件,并且对pygame.mixer.music.play()
的调用不会引发任何错误。我实际上使用了music-tag
库,它只是mutagen
的包装器,用于标记文件。想知道这是否是已知问题。
标记代码
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播放器可以播放带有或不带有标签的同一文件。
解决方法
input ()
阻止整个应用程序,直到进行输入。使用 KEYDOWN
事件检测何时按下 q(另见 Problem when using keyboard commands in pygame):
from pygame import mixer
mixer.init()
mixer.music.load('sample.mp3')
mixer.music.set_volume(0.7)
mixer.music.play(-1)
run = True
while run:
for event in pygame.event.get():
if event.type == pygame.QUIT:
run = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
mixer.music.stop()
run = False