¿Cómo puedo ajustar el volumen maestro en Windows 7 con C#?Silenciar/activar sonido, cambiar el volumen principal en Windows 7 x64 con C#
he visto una excelente aplicación utilizando winmm.dll here, pero funciona con XP y no con Windows 7.
¿Cómo puedo ajustar el volumen maestro en Windows 7 con C#?Silenciar/activar sonido, cambiar el volumen principal en Windows 7 x64 con C#
he visto una excelente aplicación utilizando winmm.dll here, pero funciona con XP y no con Windows 7.
CodeProject tiene una muy buena muestra here. Tenga en cuenta que se basa completamente en la interoperabilidad COM (consulte la interfaz COM como IAudioEndpointVolume y IAudioMeterInformation en MSDN si le interesan los detalles de implementación), y funciona SOLAMENTE para Vista/Win7 y versiones posteriores.
mínimas admitidas del cliente: Windows Vista
apoyado mínimo servidor: Windows Server 2008
utilicé el paquete Nuget Naudio con éxito con este código:
public void SetVolume(int level)
{
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
{
if (dev.State == NAudio.CoreAudioApi.DeviceState.Active)
{
var newVolume = (float)Math.Max(Math.Min(level, 100),0)/(float)100;
//Set at maximum volume
dev.AudioEndpointVolume.MasterVolumeLevelScalar = newVolume;
dev.AudioEndpointVolume.Mute = level == 0;
//Get its audio volume
_log.Info("Volume of " + dev.FriendlyName + " is " + dev.AudioEndpointVolume.MasterVolumeLevelScalar.ToString());
}
else
{
_log.Debug("Ignoring device " + dev.FriendlyName + " with state " + dev.State);
}
}
catch (Exception ex)
{
//Do something with exception when an audio endpoint could not be muted
_log.Warn(dev.FriendlyName + " could not be muted with error " + ex);
}
}
}
catch (Exception ex)
{
//When something happend that prevent us to iterate through the devices
_log.Warn("Could not enumerate devices due to an excepion: " + ex.Message);
}
}
posible http duplicado: //stackoverflow.com/a/3046715/285594 – YumYumYum