Спецификатор частоты звука Pygame не работает - PullRequest
0 голосов
/ 03 июля 2018

Когда я использую pygame для воспроизведения mp3-файлов, они воспроизводятся слишком быстро.

Конечно, я оглянулся и нашел ту же проблему здесь . Но, к сожалению, решение не сработало. Я знаю, что mp3-файлы кодируются с частотой 16000 Гц, и я проверил это с помощью мутагена. Но указание частоты не помогло, и фактически изменение частоты не изменило скорость воспроизведения .

Я также нашел этот ответ , который фактически предложил другой метод инициализации. Но это не сработало и для меня.

Я запускаю скрипт Python от имени root и использую звуковую карту USB. Я отредактировал свой файл конфигурации alsa в соответствии с этим ответом , чтобы установить его в качестве аудио выхода по умолчанию для root. Затем я использую этот код (или варианты согласно приведенным выше SO ответам):

pygame.mixer.init(frequency=16000)
pygame.mixer.music.load('myfile.mp3')
pygame.mixer.music.play()

Он всегда воспроизводится с удвоенной скоростью, даже когда я использую разные значения для частоты.

~~~~~

Вот код более подробно:

import boto3
from io import StringIO
import json
import os.path
from contextlib import closing
from time import sleep
import pygame

pygame.mixer.pre_init(16000, -16, 2, 2048)
pygame.init()
#pygame.mixer.init(frequency=16000)

#pygame.mixer.quit()
#pygame.mixer.pre_init(16384, -16, 2, 1024*3)
#pygame.mixer.init()

def play_file(filename):
    pygame.mixer.music.load(filename)
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy():
        sleep(0.1)

play_file('myfile.mp3')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...