面白いものに出会いました。で mp3 ファイルを再生してIMFMediaEngine
いるときに、ボリューム コントロールが一貫していないことに気付きました。
これは、mp3 を 100% の音量で再生します。
float volume_level=1.0f;
m_mediaEngine->SetVolume(volume_level);
これは mp3 を 0% の音量のように再生します (0.4f では何も聞こえず、より高い値でのみ聞こえます):
float volume_level=0.4f;
m_mediaEngine->SetVolume(volume_level);
ボリュームは実際にどのように機能しますか? 線形ではないようです。DirectX で XAudio2 も使用していますが、そこでは 0.0f-1.0f スケーリングが正常に機能しているようです。
0.4f で何も聞こえないのはなぜですか。これは、ボリュームの 0% ではなく 40% であるはずです。あたかも音量範囲が0.4f-1.0fにあるかのようです