我对c#还是很陌生,我想编写一个程序来警告我,如果我加前缀的窗口音量过高,例如,当我在后台运行Spotify时突然发出高音调,那么我会收到警报,这是否可能以我能理解的低层次方式做到?
我已经尝试过,一个使用cscore的开放源代码,虽然确实取得了一些进步,但是它为我带来了进步,甚至可以继续前进,这是我使用的源代码:
Getting individual windows application current volume output level as visualized in audio Mixer
我做到了,所以它发送了一个消息框,其窗口名称变得声音很高,但是如果我能做到的话,它在第一次没有得到更多消息框后仅工作了1次所以它不断发送消息框对我来说是完美的
修改
我下载了链接到的程序的源代码,它位于链接的底部
我改变了
var value = audioMeterInformation.GetPeakValue();
大约为0.9
并在此处添加了一个消息框:
using (var audioMeterInformation = session.QueryInterface<AudioMeterInformation>()) {
var value = audioMeterInformation.GetPeakValue();
if (value != 0) {
if (process != null) {
seenPids.Add(sessionid);
List<double> samples;
if (!sessionIdToAudioSamples.TryGetValue(sessionid, out samples)) {
samples = new List<double>();
sessionIdToAudioSamples[sessionid] = samples;
if(process.MainWindowTitle == "NAME OF MY WINDOW")
{
MessageBox.Show("true");
}
}
var val = audioMeterInformation.GetPeakValue();
samples.Add(val);
truncateSamples(samples);
我收到消息框,但是只有1次,如果再次出现高音量声音,它将不再显示消息框,而是每个窗口只出现一次。