После пометки аудиофайла с помощью 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-плееры прекрасно воспроизводят тот же файл с тегами или без них.
with open(...
, что приводит к повторному закрытию файла изображения — что-то, что вы не делаете, но должны делать - person Walter Tross   schedule 01.10.2020vlc
иtotem
, работает. И проблема, кажется, не в том, как файл открывается. Также я не понимаю, что вы имеете в виду, говоря, что не перезаписываете один и тот же файл. - person droptop   schedule 02.10.2020f.save()
перезаписывает тот же файл, который был прочитан ранее. В целом это плохая идея, хотя я заметил (после написания своего комментария), что пример в доке делает то же самое. - person Walter Tross   schedule 02.10.2020f.save('tagged_sample.mp3')
. Обратите внимание на комментарий к следующей строке... - person Walter Tross   schedule 03.10.2020