Przejdź do głównej zawartości

Capturable Sound Wave

Przegląd

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

wskazówka

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

notatka

Capturable Sound Wave automatycznie żąda uprawnień do mikrofonu w systemach iOS i Android po rozpoczęciu przechwytywania.

Podstawowe użycie

Tworzenie Capturable Sound Wave

Najpierw należy utworzyć Capturable Sound Wave.

Create Capturable Sound Wave node

ostrzeżenie

Należy traktować przechwytywaną falę dźwiękową jako silne odniesienie, 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 uzyskać wszystkie dostępne urządzenia wejścia 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 urządzeniem domyślnym.

Sprawdzanie statusu przechwytywania

Możesz sprawdzić, czy dźwięk jest aktualnie przechwytywany:

Węzeł Is Capturing

Zaawansowane funkcje

Wyciszanie i włączanie przechwytywania

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

Toggle Mute nodes

Różnice w wersjach 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 rozpocząć 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ć zaniedbywalne. 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ągnięć.

Kompletny przykład

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

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