Zum Hauptinhalt springen

Capturable Sound Wave

Übersicht

Eine erfassbare Soundwelle wird von der Streaming-Soundwelle abgeleitet. Sie unterstützt die Erfassung von Audiodaten von Eingabegeräten wie einem Mikrofon und deren Wiedergabe, mit denselben Fähigkeiten wie eine importierte Soundwelle (einschließlich Zurückspulen, Verwendung in SoundCues usw.). Sie können sogar Audio gleichzeitig erfassen und abspielen, ohne Einschränkungen.

tipp

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

hinweis

Die erfassbare Soundwelle fordert automatisch Mikrofonberechtigungen auf iOS und Android an, sobald die Erfassung gestartet wird.

Grundlegende Verwendung

Erstellen einer erfassbaren Soundwelle

Zuerst sollten Sie eine erfassbare Soundwelle erstellen.

Create Capturable Sound Wave node

warnung

Sie sollten die aufnehmbare Soundwelle als starke Referenz behandeln, um eine vorzeitige Zerstörung zu verhindern (z. B. durch Zuweisung zu einer separaten Variable in Blueprints oder Verwendung von UPROPERTY() in C++).

Verfügbare Eingabegeräte abrufen

Um diese Funktion zu nutzen, müssen Sie zuerst alle verfügbaren Audio-Eingabegeräte abrufen, die für die Aufnahme verwendet werden können.

Get Available Audio Input Devices node

Starten und Stoppen der Aufnahme

Nachdem Sie die verfügbaren Geräte abgerufen haben, können Sie mit der Aufnahme von Audiodaten vom Eingabegerät beginnen und diese bei Bedarf stoppen.

Start and Stop capture nodes

info

DeviceId ist der Index des Geräts im Array der verfügbaren Geräte aus dem vorherigen Schritt. Um das Standard-Audioeingabegerät zu verwenden, übergeben Sie -1 in Blueprints oder Audio::DefaultDeviceIndex in C++ (was INDEX_NONE entspricht), da manchmal der Index Null nicht das Standardgerät ist.

Überprüfen des Aufnahmestatus

Sie können überprüfen, ob die Sound Wave gerade Audio aufnimmt:

Is Capturing node

Funktionen für Fortgeschrittene

Stummschalten und Aufheben der Stummschaltung der Aufnahme

Sie können die Tonaufnahme stummschalten oder die Stummschaltung aufheben, um die Ansammlung von Audiodaten zu verhindern, ohne den Aufnahmeprozess zu unterbrechen.

Toggle Mute nodes

Unterschiede in der Engine-Version

UE 5.3 und neuer: Das Starten und Stoppen der Aufnahme verursacht keine Ruckler mehr, daher hat ToggleMute den gleichen Effekt wie StartCapture/StopCapture. Sie müssen ToggleMute möglicherweise überhaupt nicht für Leistungsoptimierungen verwenden.

UE 5.2 und älter: Das Starten der Aufnahme über StartCapture kann leichte Ruckler verursachen. In diesen Versionen wird empfohlen, ToggleMute für häufiges Ein- und Ausschalten der Aufnahme zu verwenden. Sie sollten die Aufnahme selbst zunächst zu einem weniger kritischen Zeitpunkt starten (z. B. während eines Ladebildschirms) und dann Stummschaltung/Stummschaltung aufheben verwenden, um zu steuern, wann Audiodaten tatsächlich akkumuliert werden.

Leistungsoptimierung für ältere Engine-Versionen

Wenn Sie UE 5.2 oder älter verwenden und leichte Einfrieren eliminieren möchten, sollten Sie in Betracht ziehen, die Aufnahme zu einem Zeitpunkt zu starten, an dem dieses Einfrieren vernachlässigbar sein könnte. Sie könnten beispielsweise die Aufnahme während des Ladebildschirms Ihres Spiels starten, die aufnehmbare Soundwelle direkt danach stummschalten und dann die Stummschaltung der aufnehmbaren Soundwelle aufheben, wenn Sie Audiodaten ohne Ruckler aufnehmen möchten.

Vollständiges Beispiel

Hier ist ein vollständiges Implementierungsbeispiel für die Verwendung einer aufnehmbaren Soundwelle:

Ein Beispiel für die Verwendung einer aufnehmbaren Soundwelle