Przejdź do głównej zawartości

Przechwytywalna Fala Dźwiękowa

Przegląd

Przechwytywalna fala dźwiękowa pochodzi od strumieniowej fali dźwiękowej. Obsługuje przechwytywanie danych audio z urządzeń wejściowych, takich jak mikrofon, i ich odtwarzanie, z takimi samymi możliwościami jak zaimportowana fala dźwiękowa (w tym przewijanie, użycie w SoundCues, itp.). Możesz nawet jednocześnie przechwytywać i odtwarzać dźwięk bez żadnych ograniczeń.

wskazówka

W celu wykrywania aktywności głosowej (VAD), zapoznaj się z tą stroną.

notatka

Przechwytywalna fala dźwiękowa automatycznie żąda uprawnień do mikrofonu na iOS i Android po rozpoczęciu przechwytywania.

Podstawowe Użycie

Tworzenie Przechwytywalnej Fali Dźwiękowej

Najpierw należy utworzyć przechwytywalną falę dźwiękową.

Węzeł Create Capturable Sound Wave

warning

Należy traktować przechwytywaną falę dźwiękową jako silną referencję, aby zapobiec przedwczesnemu zniszczeniu (np. przypisując ją do osobnej zmiennej w Blueprints lub używając UPROPERTY() w C++).

Pobieranie dostępnych urządzeń wejściowych

Aby użyć tej funkcji, musisz najpierw pobrać wszystkie dostępne urządzenia wejściowe audio, które mogą być używane do przechwytywania.

Węzeł Get Available Audio Input Devices

Rozpoczynanie i Zatrzymywanie Przechwytywania

Po uzyskaniu dostępnych urządzeń, możesz rozpocząć przechwytywanie danych audio z urządzenia wejściowego i zatrzymać je, gdy zajdzie taka potrzeba.

Węzły Start and Stop capture

informacja

DeviceId to indeks urządzenia w tablicy dostępnych urządzeń uzyskanej z poprzedniego kroku. Aby użyć domyślnego urządzenia wejścia audio, przekaż -1 w Blueprints lub Audio::DefaultDeviceIndex w C++ (co równa się INDEX_NONE), ponieważ czasami indeks zero nie jest domyślnym urządzeniem.

Sprawdzanie Statusu Przechwytywania

Możesz sprawdzić, czy fala dźwiękowa aktualnie przechwytuje audio:

Węzeł Is Capturing

Zaawansowane Funkcje

Wyciszanie i Włączanie Dźwięku Przechwytywania

Możesz wybrać wyciszenie lub włączenie dźwięku przechwytywania, aby zapobiec gromadzeniu danych audio bez przerywania procesu przechwytywania.

Toggle Mute nodes

Różnice wersji silnika

UE 5.3 i nowsze: Rozpoczynanie i zatrzymywanie przechwytywania nie powoduje już zacinania, więc ToggleMute ma taki sam efekt jak StartCapture/StopCapture. Możesz w ogóle nie potrzebować używać ToggleMute do optymalizacji wydajności.

UE 5.2 i starsze: Rozpoczęcie przechwytywania przez StartCapture może powodować niewielkie zacinanie. W tych wersjach zaleca się używanie ToggleMute do częstego włączania i wyłączania przechwytywania. Najpierw należy uruchomić samo przechwytywanie w mniej krytycznym momencie (np. na ekranie ładowania), a następnie używać wyciszania/odciszania, aby kontrolować, kiedy dane audio są faktycznie gromadzone.

Optymalizacja wydajności dla starszych wersji silnika

Jeśli używasz UE 5.2 lub starszej i chcesz wyeliminować lekkie zamrożenia, rozważ rozpoczęcie przechwytywania w czasie, gdy to zamrożenie może być pomijalne. Na przykład możesz rozpocząć przechwytywanie podczas ekranu ładowania gry, wyciszyć przechwytywalną falę dźwiękową zaraz potem, a następnie odciszyć przechwytywalną falę dźwiękową, gdy jest potrzebna do przechwytywania danych audio bez żadnych zaciąć.

Kompletny przykład

Oto kompletny przykład implementacji użycia przechwytywalnej fali dźwiękowej:

Przykład użycia przechwytywalnej fali dźwiękowej