Звук укорочен в PyGame - PullRequest
       27

Звук укорочен в PyGame

3 голосов
/ 02 декабря 2010

Я использую Ubuntu 10.4 и изучаю PyGame, следуя инструкциям «Забей шимпанзе и выиграй $$$».

Я сделал два файла .wav, но когда я пытаюсь их воспроизвести, я получаю странный шум, похожий на стук, очень короткий.

Я не получаю сообщения об ошибке. Почему это не работает, как ожидалось?

>>> import pygame
>>> pygame.init()
(6, 0)
>>> def load_sound(name):
    class NoneSound(object):
        def play(self): pass
    if not pygame.mixer:
        return NoneSound()
    fullname = os.path.join('data', name)
    try:
        sound = pygame.mixer.Sound(fullname)
    except pygame.error, message:
        print 'Cannot load sound:', name
        raise SystemExit, message
    return sound

>>> whiff_sound = load_sound('whiff.wav')
>>> whiff_sound.play()
<Channel object at 0xb772f1c0>
>>> 

Ответы [ 3 ]

3 голосов
/ 02 декабря 2010

Моей первой мыслью было, что это похоже на проблему с частотой дискретизации. Когда микшер запускается, его значения по умолчанию:

pygame.mixer.init (частота = 22050, размер = -16, каналы = 2, буфер = 4096): возврат Нет

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

Тем не менее, документация для pygame.mixer.Sound гласит:

Будет выполнена ограниченная повторная выборка чтобы образец соответствовал инициализировать аргументы для микшера.

которая предполагает, что проблема такого рода должна решиться сама собой ...

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

Надеюсь, это поможет!

2 голосов
/ 29 апреля 2011

Хотя мне не повезло с настройкой частоты, установка размера = 8 и буфера = 2048 при вызове mixer.init () работала для меня.

2 голосов
/ 02 января 2011

У меня была та же проблема со звуком, я открыл свой звук в программе под названием WavePad Sound Editor, повторно сохранил файл в формате .wav и установил частоту дискретизации 22050 Гц, и это решило мою проблему.

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