Laden...

Windows 7/8 Mixer - Grüner/Grauer Balken Wert auslesen

Erstellt von JaneksCraft vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.571 Views
Thema geschlossen
J
JaneksCraft Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren
Windows 7/8 Mixer - Grüner/Grauer Balken Wert auslesen

Hallo,

wie Ihr vll. seht bin ich neu hier im Forum - Also erstmal Hallo 8)
Ich scheitere gerade auf ganzer Linie dabei, aus dem Windows 7/8 Audio Mixer den Grünen sowie den Grauen Wert von einer Application auszulesen.
D.h ich möchte von einer ProcessID sagen wir mal 5488 - Spotify den aktuellen Pegel auslesen. Nicht die eingestellte Lautstärke, das hab ich alleine schon hinbekommen.
Wenn einer sich damit schonmal auseinandergesetzt hat, oder sich in dem Themengebiet gut auskennt wäre das super!

Vielen Dank im Vorraus 🙂

J
JaneksCraft Themenstarter:in
2 Beiträge seit 2014
vor 9 Jahren

Danke. Leider komme ich damit nicht wirklich zurecht:


 class Program
    {
        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<AudioMeterInformation>())
                        {
                            Console.WriteLine(audioMeterInformation.GetPeakValue()*100);
  
                        }
                        
                    }
                }
            }
            
            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;
                }
            }
        }

    }

Ich bekomme eine Ausgabe nur mit den Peaks(Werte der grünen Balken). Aber ohne jegliche Zuordnung wie z.B der ProcessID, oder dem Name des gerade abspielenden Programms. Ich hab schon auf der Project Homepage von CSCore geschaut. Aber ohne Erfolg.
In dem Programm selbst liefert "AudioMeterInformation" auch keine Methode mit um sonstige Informationen wie die eben gerade erwähnte ProcessID zu liefern.

Kann mir hier jemand helfen? Nochmal: Am besten wäre es ich übergebe die ProcessID und bekomme den aktuellen Wert des grünen Balken zurück.

16.830 Beiträge seit 2008
vor 9 Jahren

Am besten wäre es ich übergebe die ProcessID und bekomme den aktuellen Wert des grünen Balken zurück.

Das wirst fertig so nicht bekommen.
So funktioniert die Win32 API nicht.

T
87 Beiträge seit 2010
vor 9 Jahren

Ich weiß der Thread ist schon etwas älter. Nur der Vollständigkeit halber: Es handelt sich dabei auch nicht um Win32 API. Und es ist durchaus möglich den Peak einer Session einem Prozess zuzuordnen. Bin nur durch zufall hier rüber gestolpert. Lösung findet sich hier: CSCore Application Audio Mixer Name+Peak (wurde wie ich gerade sehe eh ebenfalls von JaneksCraft gefragt).

Hinweis von herbivore vor 9 Jahren

Damit hat sich herausgestellt, dass hier ein Crosspost vorliegt durch den an zwei Threads gleichzeitig gearbeitet wurde, ohne dass die Helfer den jeweils anderen Thread kannten. Solch unnötige Doppelarbeit soll nach [Hinweis] Wie poste ich richtig? Punkt 2.2 vermieden werden.

Thema geschlossen