65.9K
CodeProject is changing. Read more.
Home

Playing Wav files with .NET

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.38/5 (21 votes)

Jan 27, 2004

CPOL
viewsIcon

43619

downloadIcon

300

This article shows a simple and straightforward way to play Wav files in .NET using C#.

Introduction

This article illustrates how simple it is to add sound functionality to any .NET application. I use the PlaySound Win32 function located in the winmm.dll library. The sample does not include all the different flags associated with fdwSound; these can be acquired in a number of different ways. Try opening a Managed C++ project and type the PlaySound function in there. It should give you the signature. For any of the fdwSound constants, you can type them in, and either hover the mouse over to get the value, or right click and select Go to definition to see where they are defined.

Here is the basic code for it:

//first I define the function
[DllImport("winmm.dll")]
static extern bool PlaySound(string file, int module, int flags );

//then in the click event of the form i specify this
OpenFileDialog media = new OpenFileDialog();
media.RestoreDirectory = true;
if(media.ShowDialog() == DialogResult.OK){
     string waveFile = media.FileName;
     string extension = System.IO.Path.GetExtension(waveFile);
     if(extension.ToLower() == ".wav"){
          PlaySound(waveFile,0,0x0008); //yep it's really this simple.
    }
}

You could just use the function with zeros for every other parameter:

PlaySound(somefile.wav",0,0);

That's it, you're good to go.