Microsoft DirectX 8.0 (Visual Basic) |
サウンド エフェクトのパラメータを設定または取得するには、まず、そのエフェクトを含むバッファから適切なオブジェクトを取得する必要がある。次のクラスを使って、DirectX Audio で提供される DMO のパラメータにアクセスできる。
エフェクト オブジェクトを取得するには、lStage として DMUS_PATH_BUFFER_DMO を DirectMusicAudioPath8.GetObjectInPath に渡す。オーディオパスに複数のバッファが含まれる場合、lBuffer はバッファのインデックスでなければならない。標準オーディオパスのバッファのインデックス番号については、「標準オーディオパス」のオーディオパスのタイプを参照すること。
次のサンプル コードは、バッファのガーグル エフェクトのインターフェイスを取得する。次に、このインターフェイスを使って、エフェクトのパラメータを変更している。dmAudioPath は、オーディオパス構成オブジェクトで DirectMusicPerformance8.CreateAudioPath を呼び出すことによって取得された DirectMusicAudioPath8 オブジェクトであるとする。
Dim gargleParams As DSFXI3DL2GARGLE Dim gargleFX As DirectSoundFXGargle8 Set gargleFX = dmAudioPath.GetObjectinPath(DMUS_PCHANNEL_ALL, _ DMUS_PATH_BUFFER_DMO, 0, DSFX_STANDARD_GARGLE, 0, _ IID_DirectSoundFXGARGLE) gargleParams = gargleFX.GetAllParameters gargleParams.lRateHZ = DSFXGARGLE_RATEHZ_MIN gargleFX.SetAllParameters gargleParams
アプリケーションが独自の DirectSound バッファを管理する場合、エフェクト パラメータの変更をすぐに実行する必要がある。効率を高めるため、DirectSoundSecondaryBuffer8.Play を呼び出す前に、DirectSound は再生カーソルの位置から開始して 100 ミリ秒のサウンド データを処理する。この処理は、以下のいずれかの呼び出しが実行された後に行うことができる。
これらのメソッドのいずれかを呼び出した後でエフェクト パラメータを変更した場合、処理済みのデータが再生されるまで、新しいパラメータは聞こえない。これを回避するには、以下のいずれかを実行する。