2010-08-17 45 views

Respuesta

157

que puede usar:

System.Media.SoundPlayer player = new System.Media.SoundPlayer(@"c:\mywavfile.wav"); 
player.Play(); 
+19

Esta es la respuesta perfecta porque un nuevo usuario puede entender que SoundPlayer pertenece a System.Media .... –

+1

¿Qué es @ for ?. –

+16

@Ali ... http://stackoverflow.com/questions/2361857/what-does-means-in-c-sharp "Significa interpretar la siguiente cadena como literal. Es decir, la \ en la cadena será en realidad una "\" en la salida, en lugar de tener que poner "\\" para significar el carácter literal " – Praveen

28

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() 
    } 
} 

MSDN page

Esto también trabajará con WPF, pero hay otras opciones como el uso de MediaPlayerMSDN page

+1

Probablemente debería estar envuelto en una declaración 'using' como hereda de' Component' – cjk

+0

@ck - Solo estaba mostrando lo básico, pero sí en el código de producción, envuélvalo en 'using'. – ChrisF

+1

Mejor aún, en el código de producción, créelo solo una vez y úselo muchas veces en lugar de crearlo cada vez que se presiona el botón. – Shibumi

63

Puede usar SystemSound, por ejemplo, System.Media.SystemSounds.Asterisk.Play();.

+4

+1 genial, no sabía que –

+0

+1 para usar instancias incorporadas similares a 'SystemColors'. – Shibumi

+0

muy útil. puede ayudar a usar los valores predeterminados del sistema. –

7

Información adicional.

Esta es una respuesta de alto nivel para aplicaciones que desean integrarse perfectamente en el entorno de Windows. Los detalles técnicos de reproducir un sonido particular se proporcionaron en otras respuestas. Además de eso, siempre tenga en cuenta estos dos puntos:

  1. Uso cinco del sistema estándar de sonidos en escenarios típicos, es decir

    • asterisco - juega cuando se quiere resaltar evento actual

    • Pregunta - jugar con preguntas (la ventana del cuadro de mensaje del sistema reproduce esta)

    • exclamación - jugar con el icono excalamation (sistema de ventanas cuadro de mensaje juega éste)

    • Bip (sonido del sistema por defecto)

    • parada crítico ("mano") - jugar con error (la ventana del cuadro de mensaje del sistema reproduce este)

    Los métodos de la clase System.Media.SystemSounds los reproducirán por usted.

  2. Implementar cualquier otro sonido como personalizable por sus usuarios en sonido panel de control

    • De esta manera los usuarios pueden cambiar o quitar fácilmente sonidos de su aplicación y que no necesitan escribir cualquier interfaz de usuario para esto - ya está allí
    • Cada perfil de usuario puede anular estos sonidos de manera propia
    • Cómo hacerlo:
      • Create sound profile of your application in the Windows Registry (Pista: no hay necesidad de programación, sólo tiene que añadir las llaves en el instalador de la aplicación.)
      • En su aplicación, lea la ruta del archivo de sonido o DLL de recursos de sus claves de registro y reproducirlo. (Cómo reproducir sonidos se puede ver en otras respuestas.)
2

Para reproducir un archivo de audio en forma de Windows con C# vamos a ver ejemplo sencillo de la siguiente manera:

1.Go Visual Studio (VS-2008/2010/2012) -> Menú Archivo -> haga clic en Nuevo proyecto.

2.En el proyecto nuevo -> haga clic en Aplicación de Windows Forms -> Nombre y luego en Aceptar.

Se abrirá un nuevo proyecto de "Windows Forms".

3. Deslice y suelte un control de botón de la Caja de herramientas a Windows Form.

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 en el botón 1_Click evento hander.

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 F5 para ejecutar el código.

7.Haga clic en el botón y seleccione un archivo de audio. Después de que el archivo se carga, el sonido se reproducirá.

Espero que este sea un ejemplo útil para principiantes ...

Cuestiones relacionadas