Microsoft DirectX 8.0 (C++) |
純粋な DirectSound アプリケーションでのエフェクトの再生は、基本的には DirectMusic のパフォーマンスおよびオーディオパスを使用するアプリケーションの場合と同様に処理される。詳細については、「エフェクトの使い方」を参照すること。DirectSound アプリケーションにはオーディオパスがないので、常にバッファを直接操作する。
エフェクトを使用するには、DirectSound アプリケーションは CoInitialize を呼び出して COM を初期化する必要がある。この処理は、DirectSoundCreate8 による DirectSound オブジェクトの作成を排除しない。
バッファがあまり小さいと、エフェクトがうまく動作しない。DirectSound では、DSBSIZE_FX_MIN ミリ秒以下のデータしか保持できないエフェクト使用可能なバッファは作成できない。
DSBUFFERDESC 構造体の DSBCAPS_CTRLFX フラグを設定して、DMO を保持できるセカンダリ バッファを作成する。
セカンダリ サウンド バッファでエフェクトを実装するには、IDirectSoundBuffer8::SetFX を使う。
エフェクトのインターフェイスを取得するには、IDirectSoundBuffer8::GetObjectInPath を使う。このメソッドは、IDirectMusicAudioPath8::GetObjectInPath や IDirectMusicSegmentState8::GetObjectInPath とは異なり、dwStage パラメータを取らない。これは、バッファから取得できるオブジェクトは DMO だけだからである。