次の方法で共有


IMFSimpleAudioVolume インターフェイス (mfidl.h)

ストリーミング オーディオ レンダラー (SAR) とオーディオ キャプチャ ソースに関連付けられているオーディオ セッションのマスター ボリューム レベルを制御します。

SAR とオーディオ キャプチャ ソースは、このインターフェイスをサービスとして公開します。 インターフェイスへのポインターを取得するには、 IMFGetService::GetService を呼び出します。 SAR の場合は、サービス識別子MR_POLICY_VOLUME_SERVICEを使用します。 オーディオ キャプチャ ソースの場合は、サービス識別子MR_CAPTURE_POLICY_VOLUME_SERVICEを使用します。 SAR またはオーディオ キャプチャ ソースで GetService を直接呼び出すか、メディア セッションで呼び出すことができます。

継承

IMFSimpleAudioVolume インターフェイスは、IUnknown インターフェイスから継承されます。 IMFSimpleAudioVolume には、次の種類のメンバーもあります。

メソッド

IMFSimpleAudioVolume インターフェイスには、これらのメソッドがあります。

 
IMFSimpleAudioVolume::GetMasterVolume

マスター ボリューム レベルを取得します。
IMFSimpleAudioVolume::GetMute

オーディオがミュートされているかどうかを照会します。 (IMFSimpleAudioVolume.GetMute)
IMFSimpleAudioVolume::SetMasterVolume

マスター ボリューム レベルを設定します。
IMFSimpleAudioVolume::SetMute

オーディオをミュートまたはミュート解除します。 (IMFSimpleAudioVolume.SetMute)

解説

個々のチャネルのボリューム レベルを制御するには、 IMFAudioStreamVolume インターフェイスを 使用します。 IMFAudioStreamVolume インターフェイスは SAR でのみサポートされています。

ボリュームは減衰レベルとして表されます。0.0 は無音を示し、1.0 は完全なボリューム (減衰なし) を示します。 各チャネルについて、減衰レベルは次の積です。

  • オーディオ セッションのマスター ボリューム レベル。
  • チャネルのボリューム レベル。
たとえば、マスター ボリュームが 0.8 で、チャネル ボリュームが 0.5 の場合、そのチャネルの減衰は 0.8 × 0.5 = 0.4 になります。 ボリューム レベルは 1.0 (正のゲイン) を超える可能性がありますが、オーディオ エンジンは 0 デシベルを超えるオーディオ サンプルをクリップします。 個々のチャネルのボリューム レベルを変更するには、 IMFAudioStreamVolume インターフェイスを 使用します。

次の式を使用して、ボリューム レベルをデシベル (dB) スケールに変換します。

減衰 (dB) = 20 * log10(Level)

たとえば、ボリューム レベル 0.50 は 6.02 dB の減衰を表します。

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfidl.h

関連項目

メディア ファンデーション インターフェイス

ストリーミング オーディオ レンダラー