次の方法で共有


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

アプリケーションは、サウンド バッファーの作成時にそのバッファーに必要なコントロール オプションを指定する必要があります。これは、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 エラー コードを返します。

関連項目

再生のコントロール