Zum Hauptinhalt springen

Audio importieren

Übersicht

Der Prozess des Audio-Imports zur Laufzeit kann in mehrere Schritte unterteilt werden:

  1. Einen Runtime Audio Importer erstellen
  2. An die benötigten Delegates binden (OnProgress und OnResult)
  3. Audio aus einer Datei oder einem Buffer importieren
  4. Die importierte Sound Wave aus dem OnResult-Delegate abspielen (weitere Informationen finden Sie hier)
Wichtiger Hinweis

Stellen Sie sicher, dass sowohl Runtime Audio Importer als auch Sound Wave-Instanzen nicht vorzeitig vom Garbage Collector bereinigt werden, indem Sie eine starke Referenz auf sie halten. Dies kann durch Zuweisung zu separaten Variablen mittels UPROPERTY(), TStrongObjectPtr oder einer anderen Methode, die das Objekt vor der Zerstörung schützt, 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 Import von Audio können Sie entweder das Format explizit angeben oder die automatische Formaterkennung basierend auf Dateierweiterung oder Inhalt verwenden.

Streaming-Audio-Imports

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

Diese Methode bietet eine kontinuierliche Möglichkeit, Audiodaten an den gleichen Sound-Wave-Buffer anzuhängen, was sie für Live-Streams oder große Dateien, die in Chunks verarbeitet werden, 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 als starke Referenz vom Garbage Collector behandelt wird.

Create Runtime Audio Importer node

2. An OnProgress-Delegate binden

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

Ein Beispiel für das Binden an den On Progress Delegate

tipp

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

3. An OnResult Delegate binden

Um benachrichtigt zu werden, wenn der Audio-Daten-Importprozess abgeschlossen ist und auf die Referenz der resultierenden Sound-Wave zugreifen zu können, müssen Sie an den OnResult (Blueprints) / OnResultNative (C++) Delegate binden.

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

warnung

Stellen Sie sicher, dass die importierte Soundwelle vom Garbage Collector als starke Referenz behandelt wird, um 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 durch Aufruf der relevanten Funktion, die sowohl komprimierte als auch unkomprimierte Audiodatenformate verarbeiten kann.

Import Audio nodes examples

Utility-Funktionen

Audiodateien finden

Sie können ein Verzeichnis nach unterstützten Audiodateien durchsuchen:

Scan Directory For Audio Files node

Vollständiges Beispiel

Hier ist eine vollständige Implementierungsbeispiel für den Audio-Import:

Vollständiges Beispiel