检查应用程序是否发出声音

时间:2014-04-20 13:13:51

标签: c# wpf audio cscore

今天我在这里问你如何能够理解"如果给定的应用程序发出声音。 在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。 有没有办法&#34; 通用&#34;去做吧? 如果有一种方法可以用Java做到这一点会更好,所以在Linux上工作(目前我不需要,但可能在将来)

1 个答案:

答案 0 :(得分:1)

很抱歉,Windows XP不会查询进程的音频峰值。您还可以查看Windows XP Audio Mixer。没有显示峰值。