Przejdź do głównej zawartości

Importuj Audio

Przegląd

Proces importowania audio w czasie rzeczywistym można podzielić na kilka kroków:

  1. Utwórz Runtime Audio Importer
  2. Powiąż z wymaganymi delegatami (OnProgress i OnResult)
  3. Importuj audio z pliku lub bufora
  4. Odtwórz zaimportowaną falę dźwiękową uzyskaną z delegata OnResult (więcej informacji jest tutaj)
Ważna Uwaga

Upewnij się, że zarówno instancje Runtime Audio Importer, jak i Sound Wave nie są przedwcześnie usuwane przez garbage collector, utrzymując do nich twarde referencje. Można to zrobić przypisując je do oddzielnych zmiennych za pomocą UPROPERTY(), TStrongObjectPtr lub jakiejkolwiek innej metody, która zapobiega zniszczeniu obiektu.

Obsługiwane Format Audio

Runtime Audio Importer obsługuje importowanie następujących formatów audio:

FormatOpis
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISKontener Ogg z audio Vorbis
OGG OPUSKontener Ogg z audio Opus
BINKBink Audio
RAW (PCM)Nieskompresowane dane audio Pulse-Code Modulation (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
wskazówka

Podczas importowania audio możesz albo jawnie określić format, albo użyć automatycznego wykrywania formatu na podstawie rozszerzenia pliku lub zawartości.

Importowanie Audio w Strumieniu

Dla scenariuszy strumieniowych, w których dane audio są odbierane przyrostowo (np. z serwera, przechwytywania w czasie rzeczywistym lub strumieni sieciowych), rozważ użycie Streaming Sound Waves.

Ta metoda zapewnia ciągły sposób dołączania danych audio do bufora tej samej fali dźwiękowej, co czyni ją odpowiednią dla transmisji na żywo lub dużych plików przetwarzanych w porcjach. Zobacz dokumentację Streaming Sound Wave po więcej szczegółów.

Podstawowe Kroki Implementacji

1. Utwórz Runtime Audio Importer

Najpierw musisz utworzyć obiekt Runtime Audio Importer. Należy upewnić się, że jest on traktowany jako silna referencja przez garbage collector.

Węzeł Create Runtime Audio Importer

2. Powiąż z delegatem OnProgress

Aby śledzić postęp importowania danych audio, możesz powiązać się z delegatem OnProgress (Blueprints) / OnProgressNative (C++).

Przykład powiązania z delegatem On Progress

wskazówka

Pozwoli to monitorować postęp i, na przykład, zaimplementować ekran ładowania.

3. Powiąż z delegatem OnResult

Aby otrzymywać powiadomienia, gdy proces importowania danych audio jest zakończony i uzyskać dostęp do referencji wynikowej fali dźwiękowej, musisz powiązać się z delegatem OnResult (Blueprints) / OnResultNative (C++).

Przykład powiązania z delegatem On Result

warning

Upewnij się, że zaimportowana fala dźwiękowa jest traktowana jako silne odwołanie przez garbage collector, aby zapobiec niechcianemu przedwczesnemu usuwaniu z pamięci. Można to zrobić, umieszczając ją jako oddzielną zmienną w Blueprints.

4. Rozpocznij import audio

Rozpocznij proces importu audio, wywołując odpowiednią funkcję, która może obsłużyć zarówno skompresowane, jak i nieskompresowane formaty danych audio.

Przykłady węzłów Import Audio

Funkcje narzędziowe

Wyszukiwanie plików audio

Możesz przeskanować katalog w poszukiwaniu obsługiwanych plików audio:

Węzeł Scan Directory For Audio Files

Kompletny przykład

Oto pełny przykład implementacji importowania audio:

Full example