Interfejs Web Audio API umożliwia prawidłową synchronizację dźwięku z dźwiękiem.
Właściwość outputLatency
instancji AudioContext
podaje szacowane opóźnienie wyjściowe sprzętu audio (np. słuchawek dousznych Bluetooth lub zewnętrznego interfejsu audio USB). Ta właściwość jest przydatna, gdy chcesz:
- Zsynchronizuj istniejący materiał audio z nowo nagranym materiałem. (w scenariuszu produkcji muzycznej)
- Synchronizuj wyjście Web Audio i inne multimedia (np. odtwarzanie wideo lub MIDI).
W tej prezentacji WebCodecs (źródło) interfejs API WebCodecs jest używany do dekodowania elementu MediaStream
w postaci nieprzetworzonych danych wideo i audio, a następnie odtwarzany w elemencie HTML <canvas>
z danymi dźwiękowymi pochodzącymi z Workletu audio. Właściwość outputLatency
pozwala wersji demonstracyjnej określić, kiedy dana sygnatura czasowa audio dociera do uszu użytkownika, a następnie odpowiednio malować klatki wideo, aby ją dopasować.
Sprawdź to na własne oczy, włącz film na swoim ulubionym zestawie słuchawkowym Bluetooth (🎧), poczekaj na ptaka (🐦) (patrz wyżej), a potem zaznacz pole wyboru (✔️), aby obserwować zmiany w odtwarzaniu dźwięku. Całkowity czas oczekiwania na wyjściu jest aktualizowany w czasie rzeczywistym.
Czas oczekiwania na dane wyjściowe elementu AudioContext
Baner powitalny autorstwa Wahida Khene w filmie Unsplash.