0

今日は、特定のアプリケーションが音を出しているかどうかをどのように「理解」できるかをお聞きするためにここにいます。Windows 7 および 8 では、次のコードを使用します (ライブラリCSCore Audio )

[...]
        AudioSessionManager2 sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render);
        AudioSessionEnumerator sessionEnumerator = sessionManager.GetSessionEnumerator();

                AudioSessionControl2 sessionControl;
                foreach (AudioSessionControl session in sessionEnumerator)
                {
                    sessionControl = session.QueryInterface<AudioSessionControl2>();
                    if (sessionControl.Process.MainWindowTitle.StartsWith("my_test"))
                    {
                        sessione = sessionControl;
                        audio = session.QueryInterface<AudioMeterInformation>();
                        break;
                    }
                }

        control.Text = sessione.Process.MainWindowTitle + "[" + audio.PeakValue + "]";
    [...]

うまく機能しますが、Windows XP では機能しません。それを行う「普遍的な」方法はありますか?Javaでこれを行う方法があればさらに良いので、Linuxで作業してください(現時点では必要ありませんが、将来的には可能です)

4

1 に答える 1

1

申し訳ありませんが、Windows XP はプロセスのオーディオ ピークを照会しません。Windows XP オーディオ ミキサーも参照してください。ピークは表示されません。

于 2014-04-20T13:16:57.197 に答える