Воспроизведение волн в памяти Pygame - PullRequest
0 голосов
/ 11 марта 2012

Я генерирую волны с помощью библиотеки Python Wave и использую пользовательский модуль записи файлов для их хранения в памяти. Однако всякий раз, когда я пытаюсь воспроизвести их с помощью Pygame, воспроизведение происходит крайне медленно. Если я сохраню точно такой же объект в файл, а затем воспроизведу его, pygame воспроизведет его с нормальной скоростью.

(кто-то сокращенно) код:

pygame.init()
pygame.mixer.init(size=8, buffer=2048, frequency=44100) #Thats the correct freq, but it does the same regardless
x = pygame.mixer.Sound(obj) #Load the output of the wave writer
x.play()

Есть идеи?

1 Ответ

1 голос
/ 11 марта 2012

С учетом предоставленной вами информации, я думаю, вы не указали все параметры для pygame.mixer.init () или указали некоторые неверно.Ваш комментарий настаивает на том, что частота правильная, но это не единственный фактор здесь.Размер (8 бит, без знака) является фактором, как и каналы (которые не упомянуты в вашем коде, но по умолчанию равны 2 в соответствии с документацией Pygame).

Когда вы создали волну, записали ее вфайла, а затем попросил Pygame воспроизвести этот волновой файл, все необходимые параметры были определены заголовком волны.

Итак, еще раз проверьте битовую ширину (параметр размера), укажите параметр channel, и еслиэто не решает проблему, отредактируйте исходный вопрос, чтобы указать код, который вы использовали для написания волнового файла.

...