Microsoft DirectX 8.0 (C++)

サウンド再生の基本的な手順

DirectX Audio の基本的な概念」で説明されている基本的な項目を理解したら、次にアプリケーションで基本的なサウンドトラックを実装する。簡単な手順を学習した後、必要に応じてサウンドトラックを細かく制御するための API について学習することができる。

ここでは、コーディングの詳細には触れずに、必要な手順の概要について説明する。サンプル コードについては、「チュートリアル 1 : オーディオ ファイルの再生」を参照すること。

サウンドを生成するには、アプリケーションで次の処理を行う必要がある。

1. COM の初期化

DirectMusic オブジェクトを作成するためのヘルパー関数はないので、CoInitializeEx を呼び出して COM を初期化する必要がある。

2. パフォーマンスの作成と初期化

ほとんどのアプリケーションはパフォーマンス オブジェクトを 1 つだけ使用する。パフォーマンス オブジェクトは、CoCreateInstance を呼び出して、IDirectMusicPerformance8 インターフェイスを取得することによって作成できる。次に、IDirectMusicPerformance8::InitAudio を呼び出す。このメソッドによって、デフォルトのオーディオパスを設定できる。

3. ローダーの作成

CoCreateInstance を使用して、IDirectMusicLoader8 インターフェイスを取得する。この処理は一度だけ行う必要があり、アプリケーションを終了するまで同じローダー オブジェクトを使用する必要がある。

4. セグメントのロード

ローダーがデータ ファイルを見つけることができるように、IDirectMusicLoader8::SetSearchDirectory を呼び出す。次に、IDirectMusicLoader8::GetObject を呼び出してファイルまたはリソースからセグメントをロードし、その IDirectMusicSegment8 インターフェイスを取得する。

5. バンドのダウンロード

DLS データをシンセサイザにダウンロードすると、音色を再生できる。ウェーブ ファイルもダウンロードする必要がある。最も簡単な方法は、IDirectMusicSegment8::Download を呼び出す方法である。

6. セグメントの再生

セグメント ポインタを IDirectMusicPerformance8::PlaySegmentEx に渡す。

この処理の詳細については、次のトピックを参照すること。

  DirectSound インターフェイスだけを使用してウェーブ サウンドを再生することもできる。ただし、このような処理を行うには、自分でデータ ソースを解析し、バッファへのデータのストリーミングを処理する必要がある。詳細については、「DirectSound でのウェーブの再生」を参照すること。