Powered By Blogger

3 ene 2010

Como reproducir un archivo Wav con .Net 3.5


EL Problema


Se necesita reproducir un fichero de WAV.


La Solución


Crear una nueva instancia de la clase System.Media.SoundPlayer, pasar la localización o stream del fichero WAV, e invocar al método Play.


Cómo Hacerlo


El namespace System.Media, fue introducido en el Framwork 2.0 de .NET, contiene una clase SoundPlayer.

SoundPlayer contiene constructores que le dejan especificar la localización de un fichero de WAV o su stream. Una vez que se ha creado una instancia, solo se necesita invocar al método Play para reproducir el archivo. El método Play crea un nuevo thread para reproducir el sonido y es de esta manera asíncrona (a menos que utilice un stream).

Para reproducir el sonido de manera síncrona, utilizar el método de PlaySync. Notar que SoundPlayer utiliza solamente el formato de WAV.

Antes de que se reproduzca un fichero, se carga en memoria. Usted puede cargar un archivo por adelantado invocando el método Load o LoadSync, dependiendo de si usted quisiera que la operación fuera asíncrona o síncrono.



El Codigo


El siguiente codigo muestra un simple form que permite a usuario abrir un archivo WAV y reproducirlo:


Imports System

Imports System.Windows.Forms

Imports System.Media

Partial Public Class Ejemplo

Private Sub cmdOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOpen.Click

' Allow the user to choose a file.

Dim openDialog As New OpenFileDialog

openDialog.Filter = "WAV Files|*.wav|All Files|*.*"

If openDialog.ShowDialog = Windows.Forms.DialogResult.OK Then

Dim player As New SoundPlayer(openDialog.FileName)

Try

player.Play()

Catch ex As Exception

MessageBox.Show("An error occurred while playing media.")

Finally

player.Dispose()

End Try

End If

End Sub

End Class