Изменить громкость звука из кода .net - PullRequest
4 голосов
/ 27 мая 2009

Есть ли простой способ установить громкость из управляемого кода .net?

Ответы [ 4 ]

4 голосов
/ 21 сентября 2012

Это делает для моей Windows 7:

Загрузите NAudio (http://naudio.codeplex.com/releases/view/79035) и укажите ссылку на DLL в вашем проекте. Затем добавьте следующий код:

        try
        {
            //Instantiate an Enumerator to find audio devices
            NAudio.CoreAudioApi.MMDeviceEnumerator MMDE = new NAudio.CoreAudioApi.MMDeviceEnumerator();
            //Get all the devices, no matter what condition or status
            NAudio.CoreAudioApi.MMDeviceCollection DevCol = MMDE.EnumerateAudioEndPoints(NAudio.CoreAudioApi.DataFlow.All, NAudio.CoreAudioApi.DeviceState.All);
            //Loop through all devices
            foreach (NAudio.CoreAudioApi.MMDevice dev in DevCol)
            {
                try
                {
                    //Set at maximum volume
                    dev.AudioEndpointVolume.MasterVolumeLevel = 0;

                    //Get its audio volume
                    System.Diagnostics.Debug.Print("Volume of " + dev.FriendlyName + " is " + dev.AudioEndpointVolume.MasterVolumeLevel.ToString());

                    //Mute it
                    dev.AudioEndpointVolume.Mute = true;
                    System.Diagnostics.Debug.Print(dev.FriendlyName + " is muted");
                }
                catch (Exception ex)
                {
                    //Do something with exception when an audio endpoint could not be muted
                    System.Diagnostics.Debug.Print(dev.FriendlyName + " could not be muted");
                }
            }
        }
        catch (Exception ex)
        {
            //When something happend that prevent us to iterate through the devices
            System.Diagnostics.Debug.Print("Could not enumerate devices due to an excepion: " + ex.Message);
        }
2 голосов
/ 27 мая 2009

В этой довольно длинной статье показано, как: Управление громкостью звука в C #

1 голос
/ 27 мая 2009

Простой ответ: Вы должны использовать взаимодействие.

Я написал библиотеку, чтобы сделать все виды звуковых вещей для вас, tho:

WinnMM.Net: http://winmm.codeplex.com/

1 голос
/ 27 мая 2009

В этой статье CodeProject показано, как полностью контролировать настройки микшера Windows, включая основной объем для системы. Похоже, это обернуло большинство ужасных вещей Win API, так что это, пожалуй, самый простой способ.

...