Zum Hauptinhalt springen

Erfassbare Schallwelle

Übersicht

Eine erfassbare Schallwelle wird von der Streaming-Schallwelle abgeleitet. Sie unterstützt das Erfassen von Audiodaten von Eingabegeräten wie einem Mikrofon und deren Wiedergabe, mit den gleichen Fähigkeiten wie eine importierte Schallwelle (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 Schallwelle fordert automatisch Mikrofonberechtigungen auf iOS und Android an, sobald die Erfassung gestartet wird.

Grundlegende Verwendung

Erstellen einer erfassbaren Schallwelle

Zuerst sollten Sie eine erfassbare Schallwelle erstellen.

Create Capturable Sound Wave node

warnung

Sie sollten die aufnehmbare Schallwelle als starke Referenz behandeln, um 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

Aufnahme starten und stoppen

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

Start and Stop capture nodes

info

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

Überprüfen des Aufnahmestatus

Sie können überprüfen, ob die Soundwelle derzeit Audio aufnimmt:

Is Capturing node

Erweiterte Funktionen

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

Engine-Version-Unterschiede

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

UE 5.2 und älter: Das Starten der Aufnahme über StartCapture kann geringfügige Ruckler verursachen. In diesen Versionen wird empfohlen, ToggleMute für das häufige Ein- und Ausschalten der Aufnahme zu verwenden. Sie sollten die Aufnahme selbst zunächst zu einer weniger kritischen Zeit (wie einem Ladebildschirm) starten 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 Schallwelle direkt danach stummschalten und dann die Stummschaltung der aufnehmbaren Schallwelle aufheben, wenn Sie benötigte Audiodaten ohne Ruckler aufnehmen möchten.

Vollständiges Beispiel

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

Ein Beispiel für die Verwendung einer aufnehmbaren Schallwelle