次の方法で共有


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

個々のオーディオ チャネルの音量レベルを制御します。

ストリーミング オーディオ レンダラー (SAR) は、このインターフェイスをサービスとして公開します。 インターフェイスへのポインターを取得するには、サービス識別子MR_STREAM_VOLUME_SERVICEを使用して IMFGetService::GetService を呼び出します。 SAR で GetService を 直接呼び出すか、メディア セッションで呼び出すことができます。

継承

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

メソッド

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

 
IMFAudioStreamVolume::GetAllVolumes

オーディオ ストリーム内のすべてのチャネルのボリューム レベルを取得します。
IMFAudioStreamVolume::GetChannelCount

オーディオ ストリーム内のチャネルの数を取得します。
IMFAudioStreamVolume::GetChannelVolume

オーディオ ストリーム内の指定したチャネルのボリューム レベルを取得します。
IMFAudioStreamVolume::SetAllVolumes

オーディオ ストリーム内のすべてのチャネルの個々のボリューム レベルを設定します。
IMFAudioStreamVolume::SetChannelVolume

オーディオ ストリーム内の指定したチャネルのボリューム レベルを設定します。

解説

アプリケーションでチャネル レベルのボリューム制御が必要ない場合は、 IMFSimpleAudioVolume インターフェイスを使用して、オーディオ セッションのマスター ボリューム レベルを制御できます。

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

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

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

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

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

要件

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

関連項目

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

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