I monitor the input volume in the computer (i.e the volume in the computer's mixer, not the system volume/the output volume) in C# using the NAudio library:
inputVolume = device.AudioMeterInformation.MasterPeakValue;
Now, the input volume also depends on the software/media player that plays the audio - either Windows Media Player, the WMP browser plugin or any other software (like VLC, Winamp, Quciktime, etc).
My problem is that I need to know when the user changes the input volume through the software that plays the audio. When a user increases the volume level in the software, for example, it increases the input volume - but I can't know if it's because the stream itself is "louder" or because the user has increased the volume level in the software that plays the audio.
If the user just increases the computer system volume, it doesn't affect anything, because it's the output volume and I don't care about it.
The audio is not from a file on the user computer but rather from a live stream through the internet (it can still be played on audio applications that are installed on the computer and not only in the browser).
Is it possible to get the volume level in the software that plays the audio? It's usually the Windows Media Player browser plugin, but it can also be a different software.
If it's not possible, is there any workaround?