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

オーディオのインポート

概要

ランタイムでのオーディオインポートプロセスは、以下のいくつかのステップに分解できます:

  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 デリゲートへのバインド例

警告

ガベージコレクターによって不要な早期のガベージコレクションを防ぐため、インポートされた音声波形が強参照として扱われるようにしてください。これは、Blueprints 内で別の変数として配置することで行えます。

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

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

オーディオインポートノードの例

ユーティリティ関数

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

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

Scan Directory For Audio Files ノード

完全な例

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

完全な例