Microsoft DirectX 8.0 (C++)

PlaySound

説明

PlaySound サンプルは、DirectSound のセカンダリ バッファ内のウェーブ ファイルを再生する方法を示す。

パス

ソース :(SDK ルート)\Samples\Multimedia\DirectSound\PlaySound

実行可能ファイル :(SDK ルート)\Samples\Multimedia\DirectSound\Bin

ユーザーズ ガイド

[Sound File] をクリックしてウェーブ ファイルをロードする。繰り返し再生する場合は、[Loop Sound] を選択する。[Play] をクリックする。

プログラミング メモ

このサンプルは、DirectSound バッファ内のサウンドを再生するために必要な、次の基本的タスクを示している。

DirectSound の設定

  1. DirectSoundCreate 関数を呼び出して DirectSound オブジェクトを作成する。
  2. IDirectSound8::SetCooperativeLevel を呼び出す。
  3. プライマリ バッファ フォーマットを設定する。このサンプルは、Dsutil.cpp 内の DSUtil_SetPrimaryBufferFormat 関数を呼び出してこの処理を行う。

DirectSound バッファへのウェーブ ファイルのロード

  1. ウェーブ ファイル ヘッダーを読み込んでデータのサイズとフォーマットを取得する。
  2. ウェーブ ファイルのサイズが適切であれば、そのデータと同じフォーマットで、ファイル全体を格納できるサイズのセカンダリ バッファを作成する。ウェーブ ファイルが大きすぎる場合、データはバッファにストリーミングされる。StreamData サンプルを参照すること。
  3. バッファにデータを書き込む。IDirectSoundBuffer8::Lock を呼び出して、バッファへのポインタを取得する。バッファの再生中はデータのストリーミングは行われないので、バッファ全体をロックできる。メモリをコピーした後、IDirectSoundBuffer8::Unlock を呼び出す。

DirectSound バッファの再生

  1. バッファが失われていないかどうかを調べる。失われた場合は復元する。
  2. IDirectSoundBuffer8::Play を呼び出してバッファを再生する。

DirectSound の解放

取得したすべての DirectSound インターフェイスで Release を呼び出す。バッファを解放してから、DirectSound オブジェクトを解放する。

参照

スタティック バッファの書き込みと再生