窗体播放声音两种方式

1.在窗体应用程序中,如果工具箱的控件中没有Windows Media Player控件,可以单击VS主菜单上的“项目”中“添加引用”命令,在"COM"组件中添加Windows Media Player控件。如图:窗体播放声音两种方式_第1张图片之后就有了窗体播放声音两种方式_第2张图片

2.播放声音有两种情况:背景音乐和响应用户操作的的声音。前者需要音质较好且较流畅的音乐,允许一定的延时,则用Windo Media Player控件较好。后者需要即时将声音播放出来,使用window系统自带的播放声音函数效果较好。

3.将声音文件放入项目的bin/Debug文件夹下(也可自己创建文件夹放置声音文件,但下文的路径根据自己的情况设置),eg:bg.mid 和 time.wav两个文件,bg.mid为背景音乐,time.wav为响应声音。另创建两个button用于播放声音。

4.背景音乐:

将windows Media Player控件添加至窗体后,便于美观,属性可设置不可见(visible=false)。创建一个函数Playmusic添加Windows Media Player播放路径:

private void PlayMusic(string musicName)
{
 this.axWindowsMediaPlayer1.URL="";
 this.axWindowsMediaPlayer1.URL=Application.StartupPath+"\\"+musicName;
}

在button1代码中引用函数Playmusic即可播放背景音乐。

private void button1_Click(object sender,EventArgs e)
{
 this.PlayMusic("bg.mid");
}


5.响应操作声音:

应用新的命名空间,用于调用Windows 系统自带的Playsound函数:

在命名空间添加:

using System.Runtime.InteropServices;

在代码中添加playsound函数:

[DllImport("winmm")]
public static extern bool PlaySound(string szSound, int hMod, int i);


创建函数Play添加playSound函数播放的路径:

private void Play(string wavName)
{
 PlaySound(Application.StartupPath+"\\"+wavName,0,1);
}


在button2中调用play函数播放响应声音:

private void button2_Click(object sender,EventArgs e)
{
 this.Play("time.wav");
}


参考:C# Windows 游戏设计 毕文斌 孙明亮主编 【清华大学出版社】。

你可能感兴趣的:(c#,c#,winform,播放声音,应用,visual,studio)