C#怎么检测音量合成器里面是不是静音 获取设备的音量和静音,我想要所有获取应用程序的音量和静音状态

   static void Main(string[] args)
    {
        MMDeviceEnumerator enumerator = new MMDeviceEnumerator();
        MMDevice defaultDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);

        bool isMuted = defaultDevice.AudioEndpointVolume.Mute;
        float volumeLevel = defaultDevice.AudioEndpointVolume.MasterVolumeLevelScalar;

        Console.WriteLine($"Is Muted: {isMuted}");
        Console.WriteLine($"Volume Level: {volumeLevel * 100}%");

        // You can now use 'isMuted' to determine if the audio output device is muted.
        // 'volumeLevel' gives you the current volume level as a percentage.

        Console.ReadLine();
    }

如果发现有静音的应用程序,就把静音解除

using System;
using CoreAudioApi;

class Program
{
    static void Main(string[] args)
    {
        var sessionManager = GetDefaultAudioSessionManager2(DataFlow.Render);
        var sessionEnumerator = sessionManager.GetSessionEnumerator();

        bool foundMutedSession = false;

        foreach (var session in sessionEnumerator)
        {
            var audioSessionControl = session.QueryInterface<AudioSessionControl2>();
            var simpleAudioVolume = audioSessionControl.QueryInterface<SimpleAudioVolume>();

            if (simpleAudioVolume.IsMuted)
            {
                Console.WriteLine($"Found muted session: {audioSessionControl.ProcessID}");

                // Unmute the session
                simpleAudioVolume.IsMuted = false;
                foundMutedSession = true;
            }

            // Optionally, you can check and display more information about the session
            var displayName = audioSessionControl.DisplayName;
            Console.WriteLine($"Session: {displayName}");
        }

        if (foundMutedSession)
        {
            Console.WriteLine("Unmuted at least one application session.");
        }
        else
        {
            Console.WriteLine("No muted application sessions found.");
        }

        Console.ReadLine();
    }

    private static AudioSessionManager2 GetDefaultAudioSessionManager2(DataFlow dataFlow)
    {
        var enumerator = new MMDeviceEnumerator();
        var device = enumerator.GetDefaultAudioEndpoint(dataFlow, Role.Multimedia);
        var sessionManager = AudioSessionManager2.FromMMDevice(device);
        return sessionManager;
    }
}