Platform SDK: DirectX |
ここでは、C および C++ でのアプリケーション開発について説明する。Visual Basic については、「DirectSound Visual Basic チュートリアル」を参照すること。
ここでは引き続き SetupStreamBuffer 関数の内部を調べる。今度はウェーブ ファイルと同じフォーマットでセカンダリ サウンド バッファを作成する。このプロセスは、プライマリ バッファを作成したステップ 1 に似ている。最初に、グローバルな DSBUFFERDESC 構造体でこのバッファについて記述し、次にその記述を IDirectSound::CreateSoundBuffer メソッドに渡す。
memset(&dsbdesc, 0, sizeof(DSBUFFERDESC)); dsbdesc.dwSize = sizeof(DSBUFFERDESC); dsbdesc.dwFlags = DSBCAPS_GETCURRENTPOSITION2 // これを行うのは常に良い考えである。 | DSBCAPS_GLOBALFOCUS // バックグラウンド再生を可能にする。 | DSBCAPS_CTRLPOSITIONNOTIFY; // 通知に必要である。 // バッファのサイズは任意であるが、再生位置の十分 // 先でデータを書き込めるように、少なくとも 2 秒の長さに // すべきである。 dsbdesc.dwBufferBytes = pwfx->nAvgBytesPerSec * 2; dsbdesc.lpwfxFormat = pwfx; if FAILED(IDirectSound_CreateSoundBuffer( lpds, &dsbdesc, &lpdsb, NULL)) { WaveCloseReadFile(&hmmio, &pwfx); return FALSE; }
次項 : ステップ 4 : 再生の通知の設定