Alguien sabe cómo silenciar la programación de volumen de Windows XP usando C#?Silenciar volumen de Windows con C#
Respuesta
es probable que desee utilizar los comandos MCI: http://msdn.microsoft.com/en-us/library/ms709461(VS.85).aspx
debo añadir que, si bien esto le dará un buen control general de los mezcladores de entrada y salida en las ventanas, es posible que tenga alguna dificultad con la realización de controles detallados, como el establecimiento del impulso micrófono, etc.
Ah, y si estás en Vista, a continuación, sólo olvídalo. Es un modelo totalmente diferente.
Usted podría utilizar P/Invoke como se explica aquí: http://www.microsoft.com/indonesia/msdn/pinvoke.aspx. De hecho, sigue los pasos de la Tarea 1: Silenciar y Activar sonido cerca de la parte superior.
me encontré con this project que podrían ser de interés, si se está ejecutando Vista.
nuevas de esto para P/Invoke:
private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
private const int WM_APPCOMMAND = 0x319;
[DllImport("user32.dll")]
public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
y luego usar esta línea para activar/desactivar el sonido.
SendMessageW(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr) APPCOMMAND_VOLUME_MUTE);
Trabajó un placer en XP gracias. Sin embargo, estoy usando WPF así que no hay esto. Handle. En cambio: 'public static void ToggleMute (identificador IntPtr) { SendMessageW (handle, WM_APPCOMMAND, handle, (IntPtr) APPCOMMAND_VOLUME_MUTE); } ' En ventana de WPF: ' VolumeXP.ToggleMute (new WindowInteropHelper (this) .Handle); ' –
Esto ... funcionó en Windows 7 - pero estoy en una biblioteca, que se ejecuta en segundo plano - no en cualquier cosa que alguna vez tenga una ventana - estoy tratando de silenciar otra ventana - esto funciona - pero independientemente de lo que pase por el manejo, (manejador de ventana de otra aplicación, etc.), simplemente se apaga el volumen del sistema maestro ... – BrainSlugs83
¿Por qué usas '0x80000'? 'APPCOMMAND_VOLUME_MUTE' se define como' 8'? Sin embargo, cuando uso '8', falla, pero cuando uso su' 0x80000' funciona. Esto es raro. – Noitidart
Lo que se puede usar para Windows Vista/7 y 8, probablemente demasiado:
Puede utilizar NAudio (http://naudio.codeplex.com/releases/view/79035). Descargue la última versión. Extraiga las DLL y haga referencia a la DLL NAudio en su proyecto C#.
A continuación, añada el siguiente código para iterar a través de todos los dispositivos de audio disponibles y silenciar, si es posible.
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
{
//Show us the human understandable name of the device
System.Diagnostics.Debug.Print(dev.FriendlyName);
//Mute it
dev.AudioEndpointVolume.Mute = true;
}
catch (Exception ex)
{
//Do something with exception when an audio endpoint could not be muted
}
}
}
catch (Exception ex)
{
//When something happend that prevent us to iterate through the devices
}
Gracias. Esta biblioteca funcionó cuando fallaron todas las demás que probé. Mi problema era similar a este, pero no exactamente lo mismo. Este es un muy buen hallazgo. Ojalá pudiera votarte más de una vez. – David
Gracias por el voto positivo y los comentarios. Busqué por un tiempo antes de encontrar una manera fácil de silenciar el sonido. Por lo tanto, pensé, difundir el conocimiento en algunas preguntas stackoverflow :) Me alegro de que ayudó a alguien. –
Ver How to programmatically mute the Windows XP Volume using C#?
void SetPlayerMute(int playerMixerNo, bool value)
{
Mixer mx = new Mixer();
mx.MixerNo = playerMixerNo;
DestinationLine dl = mx.GetDestination(Mixer.Playback);
if (dl != null)
foreach (MixerControl ctrl in dl.Controls)
if (ctrl is MixerMuteControl)
{
((MixerMuteControl)ctrl).Value = (value) ? 1 : 0;
break;
}
}
- 1. Silenciar/activar sonido, cambiar el volumen principal en Windows 7 x64 con C#
- 2. Cómo silenciar Windows con WPF?
- 3. C# consiguen nivel de volumen maestro/precent
- 4. ¿Cómo silenciar el sonido de mi aplicación?
- 5. Administrar volumen de aplicaciones en Windows 7
- 6. Configuración del volumen con java
- 7. SDL_mixer MIDI cuestiones de volumen en Windows Vista/7
- 8. ¿Muestra del servicio de instantáneas de volumen (VSS) en C?
- 9. Obtener volumen de sonido principal en C#
- 10. Volumen de Etage de automóvil en Amazon EC2 Windows Instance
- 11. ¿Cómo obtener el volumen maestro en Windows XP?
- 12. corte mínimo para el volumen del micrófono con reconocimiento de voz de Windows
- 13. ¿Cómo ajustar el volumen de MpMoviePlayerController en Iphone sdk?
- 14. Silenciar una reproducción de vídeo HTTP Live Streaming AVPlayer
- 15. Silenciar teléfono Android en Java
- 16. Cómo silenciar MediaPlayer en Android
- 17. Cómo silenciar una llamada entrante
- 18. ¿Cómo silenciar/silenciar la salida de stderr de HTTPServer y BasicHTTPRequestHandler?
- 19. Controlando el volumen en una aplicación Java
- 20. Monitorear el volumen en el volumen de Amazon EBS
- 21. Cómo silenciar el error "sys.excepthook is missing"?
- 22. cómo silenciar un reproductor de vídeo HTML5
- 23. El volumen de Android MediaPlayer es muy bajo (volumen ajustado)
- 24. ¿Cómo silenciar el video reproducido en AVPlayer?
- 25. Grabar con alto volumen en android
- 26. volumen de unidad física
- 27. Descargar actualizaciones de Windows con C#
- 28. No se pueden silenciar las advertencias de interpolación incrustada
- 29. Control del volumen del sonido de la aplicación en Delphi
- 30. Algoritmo de volumen de relleno
¿Es posible en Vista/Win7? – meir
En Vista y arriba tienes que usar IAudioEndpointVolume. –