次の方法で共有


Play Sound サンプル

説明

Play Sound サンプルでは、DirectSound のセカンダリ バッファ内の WAV ファイルを再生する方法を示す。

パス

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

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

ユーザーズ ガイド

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

プログラミング メモ

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

DirectSound の設定

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

DirectSound バッファへの WAV ファイルのロード

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

DirectSound バッファの再生

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

DirectSound の解放

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

参照