Platform SDK: DirectX |
DirectSound で複数のストリームをミキシングするのは簡単である。単純にセカンダリ サウンド バッファを作成し、各サウンドに対する IDirectSoundBuffer インターフェイスを取得するだけである。次にそれらのバッファを同時に再生する。DirectSound は、プライマリ サウンド バッファでミキシングを行い、その結果を再生する。
DirectSound で複数のストリームをミキシングするのは簡単である。単純にセカンダリ サウンド バッファを作成し、各サウンドに対する DirectSoundBuffer オブジェクトを取得するだけである。次にそれらのバッファを同時に再生する。DirectSound は、プライマリ サウンド バッファでミキシングを行い、その結果を再生する。
アプリケーション内のすべてのサウンドが同じウェーブ フォーマットを使用し、ハードウェア出力フォーマットがそれらのサウンドのフォーマットと一致している場合、DirectSound ミキサーは最高の品質のサウンドをもたらす。この場合、ミキサーはフォーマット変換をする必要がない。
ハードウェア出力フォーマットを変更するには、プライマリ サウンド バッファを作成し、IDirectSoundBuffer::SetFormat メソッドを呼び出す。このプライマリ バッファはコントロールの目的でだけ使える点に注意すること。このバッファの作成は、「プライマリ バッファへのアクセス」で説明したプライマリ バッファへの書き込みアクセスの取得と同じことを意味せず、協調レベルを DSSCL_WRITEPRIMARY に設定する必要もない。しかし、SetFormat メソッドを呼び出すために、DSSCL_PRIORITY またはそれ以上の協調レベルを設定する必要がある。アプリケーションが入力フォーカスを取得するたびに、DirectSound はハードウェア フォーマットを、前回の呼び出しで指定されたフォーマットに復元する。
アプリケーションでハードウェア出力フォーマットを変更するには、プライマリ サウンド バッファを作成し、DirectSoundBuffer.SetFormat メソッドを呼び出す。SetFormat メソッドを呼び出すには、DSSCL_PRIORITY の協調レベルまたはそれ以上のレベルが必要である。アプリケーションが入力フォーカスを取得するたびに、DirectSound はハードウェア フォーマットを、前回の呼び出しで指定されたフォーマットに復元する。