Passa al contenuto principale

Capturable Sound Wave

Panoramica

Un'onda sonora catturabile deriva dalla streaming sound wave. Supporta la cattura di dati audio da dispositivi di input come un microfono e la loro riproduzione, con le stesse capacità di un'onda sonora importata (inclusi riavvolgimento, utilizzo in SoundCue, ecc.). Puoi persino catturare e riprodurre audio simultaneamente senza alcuna limitazione.

suggerimento

Per il rilevamento dell'attività vocale (VAD), consulta questa pagina.

note

L'onda sonora catturabile richiede automaticamente i permessi del microfono su iOS e Android una volta avviata la cattura.

Utilizzo di Base

Creare un'onda sonora catturabile

Per prima cosa dovresti creare un'onda sonora catturabile.

Create Capturable Sound Wave node

warning

Dovresti trattare l'onda sonora catturabile come un riferimento forte per prevenirne la distruzione prematura (ad esempio assegnandola a una variabile separata nei Blueprint o usando UPROPERTY() in C++).

Ottenere i Dispositivi di Input Disponibili

Per utilizzare questa funzionalità, devi prima ottenere tutti i dispositivi di input audio disponibili che possono essere utilizzati per la cattura.

Nodo Ottieni Dispositivi di Input Audio Disponibili

Avvio e Arresto della Cattura

Dopo aver ottenuto i dispositivi disponibili, puoi iniziare a catturare i dati audio dal dispositivo di input e fermarti quando necessario.

Nodi per avviare e fermare la cattura

informazioni

DeviceId è l'indice del dispositivo nell'array dei dispositivi disponibili ottenuto dal passaggio precedente. Per utilizzare il dispositivo di input audio predefinito, passa -1 in Blueprint o Audio::DefaultDeviceIndex in C++ (che equivale a INDEX_NONE), poiché a volte l'indice zero non è il dispositivo predefinito.

Verifica dello Stato di Cattura

Puoi verificare se la Sound Wave sta attualmente catturando audio:

Nodo Is Capturing

Funzionalità Avanzate

Attivazione e Disattivazione del Mutecattura

Puoi scegliere di attivare o disattivare il mutecattura del suono per impedire l'accumulo di dati audio senza interrompere il processo di acquisizione.

Toggle Mute nodes

Differenze tra Versioni del Motore

UE 5.3 e successive: Avviare e fermare la cattura non causa più micro-freeze, quindi ToggleMute ha lo stesso effetto di StartCapture/StopCapture. Potresti non aver bisogno di usare ToggleMute affatto per l'ottimizzazione delle prestazioni.

UE 5.2 e precedenti: Avviare la cattura tramite StartCapture può causare micro-freeze. In queste versioni, si raccomanda di usare ToggleMute per attivare e disattivare frequentemente la cattura. Dovresti prima avviare la cattura stessa durante un momento meno critico (come una schermata di caricamento), e poi usare mute/unmute per controllare quando i dati audio vengono effettivamente accumulati.

Ottimizzazione delle Prestazioni per Versioni Precedenti del Motore

Se stai usando UE 5.2 o precedenti e vuoi eliminare leggeri congelamenti, considera di avviare la cattura durante un momento in cui questo congelamento potrebbe essere trascurabile. Ad esempio, potresti avviare la cattura durante la schermata di caricamento del tuo gioco, silenziare la sound wave catturabile subito dopo, e poi riattivare l'audio della sound wave catturabile quando necessario per acquisire dati audio senza alcun congelamento.

Esempio Completo

Ecco un esempio di implementazione completa dell'uso di una sound wave catturabile:

Un esempio di utilizzo di una sound wave catturabile