次の方法で共有


バッファ コントロール オプション

サウンド バッファを作成するときは、バッファが必要とするコントロール オプションを指定しなければならない。これには、DSBUFFERDESC 構造体の dwFlags メンバを使う。このメンバには、次の表に示すフラグを 1 つ以上指定できる。

フラグ 説明
DSBCAPS_CTRL3D 音源を 3D 空間内で移動できる。
DSBCAPS_CTRLFX バッファにエフェクトを追加できる。
DSBCAPS_CTRLFREQUENCY サウンドの周波数を変更できる。
DSBCAPS_CTRLPAN 音源を左から右に移動できる。
DSBCAPS_CTRLPOSITIONNOTIFY バッファに通知位置を設定できる。
DSBCAPS_CTRLVOLUME サウンドのボリュームを変更できる。

コントロールには許されない組み合わせがあることに注意する必要がある。詳細については、「DSBUFFERDESC」を参照すること。

あらゆるサウンド カードから最高の性能を得るには、アプリケーションが使うコントロール オプションだけを指定しなければならない。

DirectSound はコントロール オプションを使って、サウンド バッファにハードウェア リソースを割り当てられるかどうかを決定する。たとえば、あるデバイスがハードウェア バッファをサポートしていて、それらのバッファにパン コントロールを提供していないとする。この場合、DirectSound は DSBCAPS_CTRLPAN フラグが指定されていない場合に限って、ハードウェア アクセラレーションを使う。

バッファが備えていないコントロールを使おうとすると、メソッドは失敗する。たとえば、IDirectSoundBuffer8::SetVolume メソッドを使ってボリュームを変更しようとするとき、そのバッファの作成時に DSBCAPS_CTRLVOLUME フラグが指定されていた場合に限ってメソッドは成功する。このフラグが指定されていなかった場合はメソッドは失敗し、DSERR_CONTROLUNAVAIL エラーコードを返す。

参照