Microsoft DirectX 8.0 (C++) |
アプリケーションが IDirectMusicPerformance8::InitAudio の呼び出しでデフォルトのオーディオパスを作成した場合、IDirectMusicPerformance8::PlaySegment を使ってこのパスでセグメントを演奏できる。IDirectMusicPerformance8::PlaySegmentEx の pAudioPath パラメータに NULL を渡すことによって、デフォルトのパスでセグメントを演奏することもできる。
デフォルトのオーディオパスがない場合や、セグメントを別のパスで演奏する場合は、PlaySegment ではなく、PlaySegmentEx を使用する。オーディオパスを指定するには、2 つの方法がある。
注 DMUS_SEGF_USE_AUDIOPATH フラグを指定して作成されたオーディオパスは、セグメントの再生が停止すると直ちに解放される。オーディオパスにリバーブなどのエフェクトが含まれる場合、そのエフェクトは中断される。このような突然の中断を防ぐには、手動でオーディオパスを作成し、適切な時間をおいてから解放する。
DMUS_SEGF_USE_AUDIOPATH フラグを使って再生するセグメントについては、自動ダウンロードが有効になっていない限り、バンドはダウンロードされない。詳細については、「バンドの自動ダウンロード」を参照すること。
次のサンプル コードでは、オーディオパス構成が埋め込まれている場合はそれを使ってセグメントを再生し、そうでない場合はデフォルトのオーディオパスでセグメントを再生する。g_pPerf は IDirectMusicPerformance8 インターフェイス ポインタであり、g_pSeg はサウンド ファイルの任意のタイプへの IDirectMusicSegment8 インターフェイスである。
IDirectMusicAudioPath8 * pPath = NULL; IUnknown *pConfig; if (g_pSeg) { if (SUCCEEDED(g_pSeg->GetAudioPathConfig(&pConfig))) { g_pPerf->CreateAudioPath(pConfig, TRUE, &pPath); pConfig->Release(); } g_pPerf->PlaySegmentEx(g_pSeg, NULL, NULL, 0, 0, NULL, NULL, pPath); if (pPath) { pPath->Release(); pPath = NULL; } }
オーディオパスへのインターフェイスがある場合は、IDirectMusicAudioPath8::SetVolume を使ってボリュームを変更できる。グローバル パラメータの GUID_PerfMasterVolume はそのシンセサイザで再生されるすべてのサウンドに影響するが、このメソッドは、そのオーディオパスで再生されるパフォーマンス チャンネルのボリュームだけを設定する。