用SoundPlayer据说只能播放wav文件。
再简单点的,用WindowsMediaPlayer,
还可以用MCI,通过API直接传递给MCI设备一个播放命令,
还可以用DirectX等,控制稍微复杂,更强。
使用心得:用1方式播放背景音乐,用2方式播放偶尔的音乐
1. SoundPlayer方式:两个声音文件不能同时播放
System.Media.SoundPlayer startSound = new System.Media.SoundPlayer(Application.StartupPath + @"/play.wav");
startSound.PlayLooping();//声音文件重复播放
startSound.Stop();//声音文件停止播放
2. 用MCI,通过API直接传递给MCI设备一个播放命令:(自我感觉该种方式不能重复播放)
所属的命名空间:using System.Runtime.InteropServices;
以下为代码:
[DllImport("winmm.dll")]
public static extern int mciSendString(string m_strCmd, string m_strReceive, int m_v1, int m_v2);
[DllImport("Kernel32", CharSet = CharSet.Auto)]
static extern Int32 GetShortPathName(String path,StringBuilder shortPath, Int32 shortPathLength);
private static void playMusic(string name)
{
StringBuilder shortpath = new StringBuilder(80);
int result = GetShortPathName(name, shortpath, shortpath.Capacity);
name = shortpath.ToString();
string buf = string.Empty;
mciSendString("play "+name,buf, buf.Length, 0); //播放
}
private void button1_Click(object sender, EventArgs e)
{
playMusic(@"F:/我的文档/My Music/2002年的第一场雪.mp3");
}
private void button2_Click(object sender, EventArgs e)
{
playMusic(@"F:/我的文档/My Music/狼爱上羊.mp3");
}