Obtener el nivel de salida de volumen de la aplicación de Windows individual como se visualiza en el Mezclador de audio

Intento escribir un código C # que emita el nivel de salida de audio actual de cada una de las aplicaciones de Windows que acceden a la salida de sonido (como se muestra con las barras verdes constantemente cambiantes del mezclador de volumen).

El progtwig verificará cada 10 ms y obtendrá un resultado similar a este: Windows Media Player: 30, Mozilla Firefox: 0, Adobe Flash Player: 35 (según la figura)

Estoy usando Windows 7 y lo bash en C # (ya que Java no puede lograr esto).

He encontrado formas de obtener y configurar el volumen maestro (el manillar que muestra el 65% de Windows Media Player) para una aplicación en ejecución, ¿hay alguna manera de obtener los datos del nivel fluctuante verde?

¡Gracias!

Mezclador de audio

Puedes usar CSCore . Hay un contenedor para CoreAudioAPI-Audiosessions. Use algo como eso (para más detalles eche un vistazo a los unittest: AudioSession-UnitTests ):

private static void Main(string[] args) { using (var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render)) { using (var sessionEnumerator = sessionManager.GetSessionEnumerator()) { foreach (var session in sessionEnumerator) { using (var audioMeterInformation = session.QueryInterface()) { Console.WriteLine(audioMeterInformation.GetPeakValue()); } } } } Console.ReadKey(); } private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow) { using (var enumerator = new MMDeviceEnumerator()) { using (var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia)) { Debug.WriteLine("DefaultDevice: " + device.FriendlyName); var sessionManager = AudioSessionManager2.FromMMDevice(device); return sessionManager; } } } 

Para controlar un volumen de aplicaciones, eche un vistazo a las pruebas unitarias aquí: http://cscore.codeplex.com/SourceControl/latest#CSCore.Test/CoreAudioAPI/AudioSessionTests.cs

Aquí hay una aplicación de muestra que muestra los niveles de audio de las aplicaciones en ejecución en un gráfico. Hay dos versiones, una en WPF y otra en Windows.Forms. Usan el método de la respuesta de Florian para obtener los niveles de audio.

https://github.com/jeske/SoundLevelMonitor

enter image description here