Microsoft DirectX 8.0 (Visual Basic)

オーディオパスでのサウンドの再生

アプリケーションで DirectMusicPerformance8.InitAudio を呼び出してデフォルトのオーディオパスを作成済みの場合は、DirectMusicPerformance8.PlaySegmentExAudioPath パラメータを省略して、デフォルトのパスでセグメントを再生できる。

デフォルトのオーディオパスがない場合、または、別のパスでセグメントを再生する場合は、次のいずれかの方法でオーディオパスを指定する。

  DMUS_SEGF_USE_AUDIOPATH フラグを指定して作成されたオーディオパスは、セグメントの再生が停止すると直ちに解放される。オーディオパスにリバーブなどのエフェクトが含まれる場合、そのエフェクトは中断される。このような突然の中断を防ぐには、手動でオーディオパスを作成し、適切な時間をおいてから解放する。

DMUS_SEGF_USE_AUDIOPATH フラグを使って再生するセグメントについては、自動ダウンロードが有効になっていない限り、バンドはダウンロードされない。詳細については、「バンドの自動ダウンロード」を参照すること。

次のサンプル コードは、オーディオパス構成が埋め込まれている場合にそれを使ってセグメントを再生する。dmpDirectMusicPerformance8 オブジェクトであり、dmSeg はサウンド ファイルの任意のタイプを表す DirectMusicSegment8 オブジェクトである。DirectMusicSegment8.GetAudioPathConfig の呼び出しでエラーが発生すると、path の値は Nothing のままになり、セグメントはデフォルトのオーディオパスで再生される。

Dim path As DirectMusicAudioPath8
Dim Config As IUnknown

If Not (dmSeg Is Nothing) Then

  On Error GoTo NOCONFIG
  Set path = Nothing
  Set Config = dmSeg.GetAudioPathConfig
  Set path = dmp.CreateAudioPath(Config, True)
NOCONFIG:
  On Error Resume Next
  dmp.PlaySegmentEx dmSeg, 0, 0, , path

End If

オーディオパス オブジェクトがある場合は、DirectMusicAudioPath8.SetVolume を使ってボリュームを変更できる。DirectMusicPerformance8.SetMasterVolume メソッドはそのシンセサイザで再生されるすべてのサウンドに影響するが、このメソッドは、そのオーディオパスで再生されるパフォーマンス チャンネルのボリュームだけを設定する。