Я довольно новичок в c #, я хочу создать программу, которая будет предупреждать меня, если у меня префикс громкости окна станет слишком высоким, например, у меня Spotify, запущенный в фоновом режиме, неожиданно высокий звук, а затем я получаю предупреждениеМожно ли это сделать на низкоуровневом уровне, который я могу понять?
Я уже пробовал, с открытым исходным кодом, использующим cscore, я действительно продвинулся, но его способ продвинуться для меня дажеПродолжайте в том же духе, вот где я использую исходный код:
Получение текущего уровня громкости для отдельных приложений Windows, как показано в 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время, если звук с высокой громкостью повторяется, он не отображает окно сообщения снова, это происходит только один раз для каждого окна.