Zum Hauptinhalt springen

Audio importieren

Übersicht

Der Prozess des Audioimports zur Laufzeit kann in mehrere Schritte unterteilt werden:

  1. Einen Runtime Audio Importer erstellen
  2. An die benötigten Delegaten binden (OnProgress und OnResult)
  3. Audio aus einer Datei oder einem Puffer importieren
  4. Die importierte Sound Wave abspielen, die vom OnResult-Delegaten erhalten wurde (weitere Informationen hier)
Wichtiger Hinweis

Stellen Sie sicher, dass sowohl Runtime Audio Importer- als auch Sound Wave-Instanzen nicht vorzeitig vom Garbage Collector erfasst werden, indem Sie eine feste Referenz auf sie halten. Dies kann durch Zuweisung zu separaten Variablen mit UPROPERTY(), TStrongObjectPtr oder einer anderen Methode, die das Objekt vor der Zerstörung bewahrt, erfolgen.

Unterstützte Audioformate

Runtime Audio Importer unterstützt den Import der folgenden Audioformate:

FormatBeschreibung
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISOgg-Container mit Vorbis-Audio
OGG OPUSOgg-Container mit Opus-Audio
BINKBink Audio
RAW (PCM)Unkomprimierte Pulse-Code-Modulation-Audiodaten (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
tipp

Beim Audioimport können Sie das Format entweder explizit angeben oder die automatische Format-Erkennung basierend auf Dateiendung oder Inhalt verwenden.

Streaming-Audioimporte

Für Streaming-Szenarien, bei denen Audiodaten inkrementell empfangen werden (z. B. von einem Server, Echtzeit-Aufnahme oder Netzwerk-Streams), sollten Sie Streaming Sound Waves in Betracht ziehen.

Diese Methode bietet eine kontinuierliche Möglichkeit, Audiodaten an den gleichen Puffer der Sound Wave anzuhängen, was sie für Live-Streams oder große, in Blöcken verarbeitete Dateien geeignet macht. Weitere Details finden Sie in der Streaming Sound Wave-Dokumentation.

Grundlegende Implementierungsschritte

1. Runtime Audio Importer erstellen

Zuerst müssen Sie ein Runtime Audio Importer-Objekt erstellen. Sie sollten sicherstellen, dass es vom Garbage Collector als starke Referenz behandelt wird.

Create Runtime Audio Importer node

2. An OnProgress-Delegat binden

Um den Fortschritt beim Importieren von Audiodaten zu verfolgen, können Sie an den OnProgress (Blueprints) / OnProgressNative (C++) Delegaten binden.

Ein Beispiel für das Binden an den On Progress-Delegaten

tipp

Dies ermöglicht es Ihnen, den Fortschritt zu überwachen und beispielsweise einen Ladebildschirm zu implementieren.

3. An den OnResult-Delegaten binden

Um benachrichtigt zu werden, wenn der Audio-Datenimportprozess abgeschlossen ist und um auf die Referenz der resultierenden Soundwelle zuzugreifen, müssen Sie sich an den OnResult (Blueprints) / OnResultNative (C++) Delegaten binden.

Ein Beispiel für die Bindung an den On Result Delegaten

warnung

Stellen Sie sicher, dass die importierte Schallwelle vom Garbage Collector als starke Referenz behandelt wird, um eine unerwünschte vorzeitige Garbage Collection zu verhindern. Dies kann erreicht werden, indem sie als separate Variable in Blueprints platziert wird.

4. Audioimport starten

Starten Sie den Audioimport-Prozess, indem Sie die relevante Funktion aufrufen, die sowohl komprimierte als auch unkomprimierte Audiodatenformate verarbeiten kann.

Import Audio nodes examples

Hilfsfunktionen

Audio-Dateien finden

Sie können ein Verzeichnis nach unterstützten Audio-Dateien durchsuchen:

Scan Directory For Audio Files node

Vollständiges Beispiel

Hier ist ein vollständiges Implementierungsbeispiel für den Audio-Import:

Full example