Microsoft DirectX 8.0 (Visual Basic) |
DirectSound で複数のストリームをミキシングするのは簡単である。単純にセカンダリ サウンド バッファを作成し、各サウンドに対する DirectSoundSecondaryBuffer8 オブジェクトを取得するだけである。次にそれらのバッファを同時に再生する。DirectSound はプライマリ サウンド バッファでのミキシングを処理し、その結果を再生する。
アプリケーション内のすべてのサウンドが同じウェーブ フォーマットを使用し、ハードウェア出力フォーマットがそれらのサウンドのフォーマットと一致している場合、DirectSound ミキサは最高の品質のサウンドをもたらす。この場合、ミキサはフォーマット変換をする必要がない。
ハードウェア出力フォーマットを変更するには、プライマリ サウンド バッファを作成し、DirectSoundPrimaryBuffer8.SetFormat メソッドを呼び出す。SetFormat メソッドを呼び出すために、DSSCL_PRIORITY またはそれ以上の協調レベルを設定する必要がある。アプリケーションが入力フォーカスを取得するたびに、DirectSound はハードウェア フォーマットを、前回の呼び出しで指定されたフォーマットに復元する。
セカンダリ バッファを作成する前に、プライマリ バッファのフォーマットを設定しなければならない。
注 WDM ドライバを使う場合は、プライマリ バッファのフォーマットを設定しても効果がない。フォーマットはカーネル ミキサによって決定される。詳細については、「DirectSound ドライバ モデル」を参照すること。