Aller au contenu principal

Diffusion d'onde sonore en continu

Pour la détection d'activité vocale (VAD), consultez cette page.

Une onde sonore diffusée en continu est un type d'onde sonore importée qui permet d'ajouter des données audio dynamiquement, même pendant la lecture. Elle offre les mêmes fonctionnalités qu'une onde sonore importée, comme le rembobinage, et peut être utilisée dans des SoundCues, etc.

Création d'une onde sonore en continu

Vous devez d'abord créer une onde sonore diffusée en continu. Notez que vous devez la traiter comme une référence forte pour éviter une destruction prématurée (par exemple en l'assignant à une variable séparée dans Blueprints ou en utilisant UPROPERTY() en C++).

Nœud Create Streaming Sound Wave

Lecture de l'onde sonore

Vous pouvez ensuite lire cette onde sonore. Cependant, ce n'est pas nécessaire de le faire maintenant, vous pouvez commencer à lire l'onde sonore plus tard.

Différents exemples de lecture d'une onde sonore

Pré-allocation des données audio

Optionnellement, vous pouvez pré-allouer les données audio (en octets) pour éviter de réallouer l'intégralité du buffer PCM à chaque fois que de nouvelles données audio sont ajoutées.

Nœud Pre Allocate Audio Data

Ajout de données audio

Pour ajouter des données audio à la fin du tampon existant, utilisez les fonctions appropriées pour ajouter dynamiquement des données audio. La lecture suivra la séquence de file d'attente de ces ajouts.

Append Audio Data node

Éviter la lecture audio accélérée

Souvent, lorsque vous devez diffuser des données audio et les lire simultanément, vous devriez ajouter un léger délai avant la lecture pour éviter une audio accélérée due à un remplissage trop rapide du buffer. Un délai d'environ une demi-seconde est généralement recommandé.

Exemple d'utilisation

Finalement, votre implémentation pourrait ressembler à ceci :

Un exemple d'utilisation d'une onde sonore en streaming

On Populate Audio State

Le délégué OnPopulateAudioState fonctionne de manière similaire à OnPopulateAudioData mais ne diffuse pas les données audio peuplées. Cela peut être utile lorsque vous souhaitez suivre quand les données audio sont peuplées sans transmettre un tableau des données audio peuplées, ce qui peut améliorer les performances.

On Populate Audio State delegate

Travailler avec les données PCM

Pour un accès en temps réel aux données PCM pendant la lecture, consultez Gestion des données PCM.