Play Sound サンプル
説明
Play Sound サンプルでは、DirectSound のセカンダリ バッファ内の WAV ファイルを再生する方法を示す。
パス
ソース:(SDK ルート)\Samples\C++\DirectSound\PlaySound
実行可能ファイル:(SDK ルート)\Samples\C++\DirectSound\Bin
ユーザーズ ガイド
[Sound File] をクリックしてウェーブ ファイルをロードする。繰り返して再生する場合は、[Loop Sound] を選択する。[Play] をクリックする。
プログラミング メモ
このサンプルでは、DirectSound バッファ内のサウンドを再生するために必要な、次の基本的タスクが示されている。
DirectSound の設定
- DirectSoundCreate 関数を呼び出して DirectSound オブジェクトを作成する。
- IDirectSound8::SetCooperativeLevel を呼び出す。
- プライマリ バッファ フォーマットを設定する。このサンプルは、Dsutil.cpp 内の DSUtil_SetPrimaryBufferFormat 関数を呼び出してこの処理を行う。
DirectSound バッファへの WAV ファイルのロード
- WAV ファイル ヘッダーを読み込んでデータのサイズとフォーマットを取得する。
- WAV ファイルのサイズが適切であれば、そのデータと同じフォーマットで、ファイル全体を格納できるサイズのセカンダリ バッファを作成する。WAV ファイルが大きすぎる場合は、データはバッファにストリーミングされる。「Stream Data サンプル」を参照すること。
- バッファにデータを書き込む。IDirectSoundBuffer8::Lock を呼び出して、バッファへのポインタを取得する。バッファの再生中はデータのストリーミングは行われないので、バッファ全体をロックできる。メモリをコピーした後、IDirectSoundBuffer8::Unlock を呼び出す。
DirectSound バッファの再生
- バッファが失われていないかどうかを調べる。失われた場合は復元する。
- IDirectSoundBuffer8::Play を呼び出してバッファを再生する。
DirectSound の解放
取得したすべての DirectSound インターフェイスで Release を呼び出す。バッファを解放してから、DirectSound オブジェクトを解放する。
参照