2009-05-27 3 views

ответ

1

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

1

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

Я написал библиотеку, чтобы сделать все виды звукового материала для вас, Тхо:

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

+1

Библиотека кажется прекрасной, но образцы кода будут действительно полезными. Не могли бы вы добавить некоторые? –

4

Это делает это для моей 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); 
     } 
+0

Спасибо за это. Этот код работает на моей машине, чтобы отключить громкость. – Anshul

Смежные вопросы