2012-03-11 7 views
1

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

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

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

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

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

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