メインコンテンツまでスキップ

オーディオのインポート

概要

ランタイムでのオーディオインポートのプロセスは、いくつかのステップに分けることができます:

  1. Runtime Audio Importer を作成する
  2. 必要なデリゲート (OnProgressOnResult) にバインドする
  3. ファイルまたはバッファからオーディオをインポートする
  4. OnResult デリゲートから取得したインポート済みサウンドウェーブを再生する (詳細はこちら)
重要な注意点

Runtime Audio ImporterSound Wave の両方のインスタンスが、ガベージコレクションによって早期に破棄されないようにするためには、それらへの強参照を維持する必要があります。これは、UPROPERTY()TStrongObjectPtr、またはオブジェクトが破棄されないようにする他の方法を使用して、別々の変数に割り当てることで行うことができます。

サポートされているオーディオフォーマット

Runtime Audio Importer は、以下のオーディオフォーマットのインポートをサポートしています:

フォーマット説明
MP3MPEG-1/2/2.5 Audio Layer I/II/III
WAVWaveform Audio File Format
FLACFree Lossless Audio Codec
OGG VORBISVorbis オーディオを含む Ogg コンテナ
OGG OPUSOpus オーディオを含む Ogg コンテナ
BINKBink Audio
RAW (PCM)非圧縮パルス符号変調オーディオデータ (Int8, UInt8, Int16, UInt16, Int32, UInt32, Float32)
ヒント

オーディオをインポートする際、フォーマットを明示的に指定するか、ファイル拡張子またはコンテンツに基づいた自動フォーマット検出を使用することができます。

ストリーミングオーディオインポート

オーディオデータが段階的に受信されるストリーミングシナリオ(例:サーバーからの受信、リアルタイムキャプチャ、ネットワークストリーム)では、Streaming Sound Waves の使用を検討してください。

この方法は、同じサウンドウェーブのバッファにオーディオデータを継続的に追加する方法を提供し、ライブストリームやチャンク単位で処理される大きなファイルに適しています。詳細については、Streaming Sound Wave ドキュメントを参照してください。

基本的な実装手順

1. Runtime Audio Importer を作成する

まず、Runtime Audio Importer オブジェクトを作成する必要があります。ガベージコレクタによって強参照として扱われるようにする必要があります。

Create Runtime Audio Importer ノード

2. OnProgress デリゲートへのバインド

オーディオデータのインポート進捗状況を追跡するには、OnProgress (Blueprints) / OnProgressNative (C++) デリゲートにバインドできます。

On Progress デリゲートへのバインド例

ヒント

これにより、進行状況を監視し、例えばローディング画面を実装することができます。

3. OnResult デリゲートにバインドする

オーディオデータのインポート処理が完了し、結果のサウンドウェーブの参照にアクセスするための通知を受け取るには、OnResult (Blueprints) / OnResultNative (C++) デリゲートにバインドする必要があります。

On Result デリゲートにバインドする例

警告

インポートしたサウンドウェーブがガベージコレクションによって不要な早期回収を防ぐため、強参照として扱われるようにしてください。これは、ブループリントで別の変数として配置することで実現できます。

4. オーディオインポートを開始する

関連する関数を呼び出すことでオーディオインポートプロセスを開始します。この関数は、圧縮および非圧縮のオーディオデータ形式の両方を処理できます。

Import Audio nodes examples

ユーティリティ関数

オーディオファイルの検索

サポートされているオーディオファイルをディレクトリ内でスキャンできます:

Scan Directory For Audio Files node

完全な例

オーディオをインポートするための完全な実装例を以下に示します:

完全な例