Tengo una aplicación de Windows escrita en C # /. NET.
¿Cómo puedo reproducir un sonido específico cuando se hace clic en un botón?
Tengo una aplicación de Windows escrita en C # /. NET.
¿Cómo puedo reproducir un sonido específico cuando se hace clic en un botón?
Respuestas:
Podrías usar:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav");
player.Play();
Puede utilizar SystemSound , por ejemplo, System.Media.SystemSounds.Asterisk.Play();
.
Para Windows Forms, una forma es utilizar el SoundPlayer
private void Button_Click(object sender, EventArgs e)
{
using (var soundPlayer = new SoundPlayer(@"c:\Windows\Media\chimes.wav")) {
soundPlayer.Play(); // can also use soundPlayer.PlaySync()
}
}
Esto también funcionará con WPF, pero tiene otras opciones como usar la MediaPlayer
página MSDN
ButtonClick
, simplemente porque parece que sigue el estilo de C # nombrando más.
Esta es una respuesta de alto nivel para aplicaciones que desean encajar perfectamente en el entorno de Windows.Los detalles técnicos de la reproducción de un sonido particular se proporcionaron en otras respuestas. Además de eso, siempre tenga en cuenta estos dos puntos:
Use cinco sonidos estándar del sistema en escenarios típicos , es decir
Asterisco : juega cuando quieras resaltar el evento actual
Pregunta : jugar con preguntas (la ventana del cuadro de mensaje del sistema reproduce esta)
Exclamación : juega con el icono de excalamación (la ventana del cuadro de mensaje del sistema reproduce este)
Bip (sonido predeterminado del sistema)
Parada crítica ("Mano"): juega con error (la ventana del cuadro de mensaje del sistema reproduce esta)
Los métodos de clase System.Media.SystemSounds
los jugarán por ti.
Implemente cualquier otro sonido que sus usuarios puedan personalizar en Sound panel de control de
System.Media.SystemSounds.Hand.Play(); Thread.Sleep(2000);
reproduce el sonido Hand . Tenga en cuenta que se reproduce de forma asincrónica, aquí agregué un comando de suspensión para esperar la finalización del sonido. Si no espera y reproduce otro sonido, el anterior se detiene inmediatamente.
El código de abajo también permite reproducir archivos mp3 y archivos wave en memoria
player.FileName = "123.mp3";
player.Play();
de http://alvas.net/alvas.audio,samples.aspx#sample6 o
Player pl = new Player();
byte[] arr = File.ReadAllBytes(@"in.wav");
pl.Play(arr);
Para reproducir un archivo de audio en el formulario de Windows usando C #, veamos un ejemplo simple de la siguiente manera:
1.Vaya a Visual Studio (VS-2008/2010/2012) -> Menú Archivo -> haga clic en Nuevo proyecto.
2.En el Proyecto nuevo -> haga clic en Aplicación de formularios Windows Forms -> Dar nombre y luego haga clic en Aceptar.
Se abrirá un nuevo proyecto de "Formularios de Windows".
3.Arrastre y suelte un control de botón desde el cuadro de herramientas al formulario de Windows.
4. Haga doble clic en el botón para crear automáticamente el controlador de eventos Click predeterminado y agregue el siguiente código.
Este código muestra el cuadro de diálogo Abrir archivo y pasa los resultados a un método llamado "playSound" que creará en el siguiente paso.
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Audio Files (.wav)|*.wav";
if(dialog.ShowDialog() == DialogResult.OK)
{
string path = dialog.FileName;
playSound(path);
}
5. Agregue el siguiente código de método debajo del botón1_Haga clic en el controlador de eventos.
private void playSound(string path)
{
System.Media.SoundPlayer player = new System.Media.SoundPlayer();
player.SoundLocation = path;
player.Load();
player.Play();
}
6. Ahora ejecutemos la aplicación simplemente presionando el F5 para ejecutar el código.
7. Haga clic en el botón y seleccione un archivo de audio. Después de cargar el archivo, se reproducirá el sonido.
Espero que este sea un ejemplo útil para principiantes ...
Creo que primero debe agregar un archivo .wav a Recursos. Por ejemplo, tiene un archivo de sonido llamado Sound.wav. Después de agregar el archivo Sound.wav a Recursos, puede usar este código:
System.Media.SoundPlayer player = new System.Media.SoundPlayer(Properties.Resources.Sound);
player.Play();
Esta es otra forma de reproducir sonido.