Bawię się przy tworzeniu skryptu python, który odtwarza rytmy takie jak automat perkusyjny. Użyłem PyGame do obsługi dźwięku. Jednakże odczuwam znaczące/niedopuszczalne opóźnienia między wywołaniem gry a słyszeniem faktycznego dźwięku.PyGame ma ogromne opóźnienie w odtwarzaniu dźwięków
I wklejony następujący kod do interaktywnego interpretera, a następnie wykonać ostatnią linię znowu i znowu:
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 prasowaniem wejść i słysząc dźwięk jest moim najlepszym przypuszczeniem około 400ms, a nawet zauważalne i niedopuszczalne. Opóźnienie jest w przybliżeniu takie samo, jak po kliknięciu przycisku odtwarzania w VLC i oczekiwaniu na odtwarzanie dźwięku.
Próbowałem tego w systemie Windows i Ubuntu z tym samym wynikiem. Mój komputer jest nieco stary, Intel Core i3, 2.53GHz, ale myślę, że to nie powinno stanowić problemu.
Co mogę z tym zrobić?
w pętli:
Ten kod demonstruje samą lag.
for i in range(10):
print i
s.play(loops=0, maxtime=0, fade_ms=0)
sleep(2)
1) Może opóźnienie samego tłumacza? Spróbuj 'raw_input(); s.play (pętle = 0, maxtime = 0, fade_ms = 0)', a następnie naciśnij enter ponownie. 2) Czy werbel zaczyna się na samym początku pliku dźwiękowego? Jeśli otworzysz plik w Audacity, ile czasu upływa między początkiem a faktycznym dźwiękiem? –
1) Bez różnicy. 2) Rzeczywisty dźwięk zaczyna się natychmiast w pliku wave. Próbowałem również z innymi plikami wave. –
czy mógłbyś zamieścić link do pliku dźwiękowego, chciałbym przetestować to z moją maszyną? –