PyGame ma ogromne opóźnienie w odtwarzaniu dźwięków
Bawię się budowaniem skryptu Pythona, który gra rytmy jak automat perkusyjny. Użyłem PyGame do obsługi dźwięku. Jednak doświadczam znacznych / niedopuszczalnych opóźnień między odwoływaniem się do gry i słyszeniem rzeczywistego dźwięku.
Wkleiłem następujący kod do interpretera interaktywnego, a następnie ponownie wykonałem ostatnią linię:
import pygame
pygame.mixer.init(frequency=22050, size=-16, channels=2, buffer=4096)
s = pygame.mixer.Sound('snare.wav')
s.play(loops=0, maxtime=0, fade_ms=0)
Czas pomiędzy naciśnięciem klawisza Enter a słyszeniem dźwięku jest moim najlepszym przypuszczeniem około 400 ms, a nawet zauważalny i niedopuszczalny. Opóźnienie jest w przybliżeniu takie samo jak w przypadku kliknięcia przycisku odtwarzania w VLC i oczekiwania na odtwarzanie dźwięku.
Próbowałem tego na obu systemach Windows i Ubuntu z tym samym wynikiem. Mój komputer jest trochę stary, Intel Core i3, 2,53 GHz, ale myślę, że nie powinno to stanowić problemu.
Co mogę z tym zrobić?
W pętli:
Ten kod pokazuje to samo opóźnienie.
for i in range(10):
print i
s.play(loops=0, maxtime=0, fade_ms=0)
sleep(2)