今天我在这里问你如何“理解”给定的应用程序是否发出声音。在 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 上工作(目前我不需要,但可能在未来)