Zum Hauptinhalt springen

Streamende Schallwelle

Für Voice Activity Detection (VAD) siehe diese Seite.

Eine streamende Schallwelle ist eine Art importierter Schallwelle, die das dynamische Hinzufügen von Audiodaten unterstützt, sogar während der Wiedergabe. Sie bietet die gleiche Funktionalität wie eine importierte Schallwelle, z.B. Zurückspulen, und kann in SoundCues usw. verwendet werden.

Erstellen einer streamenden Schallwelle

Zuerst sollten Sie eine streamende Schallwelle erstellen. Bitte beachten Sie, dass Sie sie als starke Referenz behandeln sollten, um eine vorzeitige Zerstörung zu verhindern (z.B. durch Zuweisung zu einer separaten Variable in Blueprints oder Verwendung von UPROPERTY() in C++).

Create Streaming Sound Wave node

Abspielen der Schallwelle

Sie können dann diese Schallwelle abspielen. Dies ist jedoch nicht zwingend jetzt erforderlich, Sie können mit dem Abspielen der Schallwelle auch später beginnen.

Verschiedene Beispiele für das Abspielen einer Schallwelle

Vorab-Zuweisung von Audiodaten

Optional können Sie Audiodaten (Bytes) vorab zuweisen, um eine Neuzuweisung des gesamten PCM-Puffers bei jeder Anfügung neuer Audiodaten zu vermeiden.

Pre Allocate Audio Data Node

Anhängen von Audiodaten

Um Audiodaten an das Ende des bestehenden Puffers anzuhängen, verwenden Sie die entsprechenden Funktionen zum dynamischen Anhängen von Audiodaten. Die Wiedergabe folgt der Warteschlangenreihenfolge dieser Anhänge.

Append Audio Data node

Vermeidung von beschleunigter Audiowiedergabe

Oftmals, wenn Sie Audiodaten streamen und gleichzeitig abspielen müssen, sollten Sie eine kurze Verzögerung vor der Wiedergabe einfügen, um beschleunigten Audioeffekt durch zu schnelle Pufferbefüllung zu vermeiden. Eine Verzögerung von etwa einer halben Sekunde wird typischerweise empfohlen.

Beispielverwendung

Letztendlich könnte Ihre Implementierung wie folgt aussehen:

Ein Beispiel für die Verwendung einer Streaming-Soundwelle

On Populate Audio State

Der OnPopulateAudioState-Delegate funktioniert ähnlich wie OnPopulateAudioData, überträgt jedoch nicht die populierten Audiodaten. Dies kann nützlich sein, wenn Sie verfolgen möchten, wann die Audiodaten populiert werden, ohne ein Array der populierten Audiodaten zu übergeben, was die Leistung verbessern kann.

On Populate Audio State delegate

Arbeiten mit PCM-Daten

Für Echtzeit-Zugriff auf PCM-Daten während der Wiedergabe siehe PCM-Datenverarbeitung.