Pygame不播放带有mutagen标签的mp3文件

问题描述

使用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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...