Pular para o conteúdo principal

Streaming de onda sonora

Para detecção de atividade de voz (VAD), consulte esta página.

Uma streaming de onda sonora é um tipo de onda sonora importada que suporta a adição dinâmica de dados de áudio, mesmo durante a reprodução. Ela oferece a mesma funcionalidade de uma onda sonora importada, como retroceder, e pode ser usada em SoundCues, etc.

Criando uma streaming de onda sonora

Primeiro, você deve criar uma streaming de onda sonora. Observe que você deve tratá-la como uma referência forte para evitar destruição prematura (por exemplo, atribuindo-a a uma variável separada em Blueprints ou usando UPROPERTY() em C++).

Nó Create Streaming Sound Wave

Reproduzindo a onda sonora

Você pode então reproduzir essa onda sonora. No entanto, isso não é necessário fazer agora, você pode começar a reproduzir a onda sonora mais tarde.

Vários exemplos de reprodução de uma onda sonora

Pré-alocação de dados de áudio

Opcionalmente, você pode pré-alocar dados de áudio (bytes) para evitar realocar todo o buffer PCM cada vez que novos dados de áudio são anexados.

Nó Pre Allocate Audio Data

Anexando dados de áudio

Para adicionar dados de áudio ao final do buffer existente, use as funções apropriadas para anexar dinamicamente dados de áudio. A reprodução seguirá a sequência de fila desses anexos.

Nó Append Audio Data

Evitando reprodução acelerada de áudio

Frequentemente, quando você precisa transmitir dados de áudio e reproduzir simultaneamente, deve adicionar um pequeno atraso antes da reprodução para evitar áudio acelerado devido ao preenchimento muito rápido do buffer. Um atraso de aproximadamente meio segundo é geralmente recomendado.

Exemplo de uso

Por fim, sua implementação pode ficar assim:

Um exemplo de uso de uma onda sonora de streaming

On Populate Audio State

O delegado OnPopulateAudioState funciona de forma similar ao OnPopulateAudioData, mas não transmite os dados de áudio populados. Isso pode ser útil quando você deseja rastrear quando os dados de áudio são populados sem passar um array dos dados de áudio populados, o que pode melhorar o desempenho.

On Populate Audio State delegate

Trabalhando com Dados PCM

Para acesso em tempo real aos dados PCM durante a reprodução, consulte Manipulação de Dados PCM.