2009-05-27 10 views

Antwort

1

This CodeProject article zeigt, wie Sie in vollem Umfang die Windows-Mixer-Einstellungen steuern, einschließlich der Master-Lautstärke für das System. Es scheint die meisten schrecklichen Win-API-Sachen zu umhüllen, also ist es wahrscheinlich der einfachste Weg.

1

Einfache Antwort: Sie müssen Interop verwenden.

ich eine Bibliothek schrieb für Sie alle Arten von Sound Sachen zu tun, tho:

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

+1

Die Bibliothek scheint gut zu sein, aber Codebeispiele wären sehr hilfreich. Könnten Sie bitte etwas hinzufügen? –

4

Dies macht es für mein Windows 7:

herunterladen NAudio (http: //naudio.codeplex.com/releases/view/79035) und verweisen Sie auf die DLL in Ihrem Projekt. Dann folgenden Code hinzufügen:

 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

Danke dafür. Dieser Code funktioniert auf meinem Computer zum Stummschalten der Lautstärke. – Anshul