You need to use WMPLib.WindowsMediaPlayer if yuo want to play non .wav files otehrwise you'll have to resort to a third party library.

Play File Example


	//Play the file
	WMPLib.WindowsMediaPlayer wplayer = new WMPLib.WindowsMediaPlayer();
	wplayer.URL= TemporaryFilename;
	wplayer.controls.play();

Play From Stream

You can't!

Play Using Same Temporary File Example

Global object

	WMPLib.WindowsMediaPlayer wplayer;
Play the file

//WindowsMediaPlayer is a problem for this application because:
	//	It won't play from a stream
	//	So we have to play from a temporary file, but WindowsMediaPlayer doesn't release the file quickly even after closing and killing it
	//	So we have had to come up with a bodgit use multiple temporary files to work aroudn this issue.

	//KILL WindowsMediaPlayer IF IS STILL PLAYING OR ACTIVE
	if (wplayer != null)
	{
		try
		{
			wplayer.close();
		}
		catch (Exception)
		{
		}
		try
		{
			System.Diagnostics.Process[] prc = System.Diagnostics.Process.GetProcessesByName("wmplayer");
			if (prc.Length > 0)
				prc[prc.Length - 1].Kill();
		}
		catch (Exception)
		{
		}
	}

	int FileId;
	string TemporaryFilename;
				

	//Create directory if necessary
	TemporaryFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + Application.CompanyName + "\\" + Application.ProductName + "\\";
	if (!Directory.Exists(Path.GetDirectoryName(TemporaryFilename)))
		Directory.CreateDirectory(Path.GetDirectoryName(TemporaryFilename));

	//Delete any old files if they've been released finally
	for (FileId = 0; FileId < 20; FileId++)
	{
		TemporaryFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + Application.CompanyName + "\\" + Application.ProductName + "\\temp_play_file" + FileId + ".mp3";
		if (File.Exists(TemporaryFilename))
		{
			try
			{
				File.SetAttributes(TemporaryFilename, FileAttributes.Normal);
				if ((File.GetAttributes(TemporaryFilename) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
					File.SetAttributes(TemporaryFilename, FileAttributes.Normal);

				File.Delete(TemporaryFilename);
			}
			catch (Exception)
			{
			}
		}
	}

	//Write the file
	for (FileId = 0; FileId < 20; FileId++)
	{
		TemporaryFilename = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + Application.CompanyName + "\\" + Application.ProductName + "\\temp_play_file" + FileId + ".mp3";
		if (!File.Exists(TemporaryFilename))
		{
			//Write the file
			File.WriteAllBytes(TemporaryFilename, SelectedCardAudioFileData);
			File.SetAttributes(TemporaryFilename, FileAttributes.Normal);

			//Play the file
			wplayer = new WMPLib.WindowsMediaPlayer();
			wplayer.PlayStateChange += new WMPLib._WMPOCXEvents_PlayStateChangeEventHandler(wplayer_PlayStateChange);
			wplayer.URL= TemporaryFilename;
			wplayer.controls.play();
			break;
		}
	}
Method to handle end of playback

	//*************************************************
	//*************************************************
	//********** MP3 PLAYER FINISHED PLAYING **********
	//*************************************************
	//*************************************************
	void wplayer_PlayStateChange(int NewState)
	{
		if (NewState == (int)WMPLib.WMPPlayState.wmppsMediaEnded)
		{
			wplayer.close();
			wplayer = null;

			try
			{
				System.Diagnostics.Process[] prc = System.Diagnostics.Process.GetProcessesByName("wmplayer");
				if (prc.Length > 0)
					prc[prc.Length - 1].Kill();
			}
			catch (Exception)
			{
			}
		}
	}

 

 

USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.