同时播放2个声音
为任何笔记本电脑设计游戏:
我想同时播放2个声音! 按下按钮时的背景音乐和声音!
使用System.Media
不允许我一起播放2个声音。 对于背景音乐,我使用了以下内容:
SoundPlayer sp = new SoundPlayer(@"..\..\bin\debug\tribal dance.wav"); sp.Play;
如果我玩另一个SoundPlayer
,前一个停止!
我希望背景音乐继续播放,直到表格关闭! 同时,如果单击一个按钮,音乐将播放另一个声音!
我还尝试将Windows Media Player添加到工具箱并使用它(允许我同时播放2个声音)。 这工作正常,但如果我把它放在路径上会出错(@""..\..\bin\debug\tribal dance.wav");
我需要这样说才能被任何人阅读电脑。
有什么建议?
您无法使用SoundPlayer一次播放两种声音。
SoundPlayer使用原生的WINAPI PlaySoundfunction来完成不支持播放同步声音的任务。 创建SoundPlayer的多个实例无济于事。
有很多选项,其中大多数涉及为窗口的本机音频库或DirectSound实现许多低级API(注意既不是C#也需要很多互操作代码)
最简单的选择是依靠Windows媒体播放器为您播放音频。
添加对“C:\ Windows \ System32 \ wmp.dll”的引用
然后用
var player = new WMPLib.WindowsMediaPlayer(); player.URL = @"..\..\bin\debug\tribal dance.wav";
注意:设置URL属性后立即开始播放
这种方法的缺点是您依赖媒体播放器来使您的应用程序正常工作。 在好的方面,您可以使用任何文件格式的媒体播放器支持。
http://msdn.microsoft.com/en-us/library/dd562851%28v=VS.85%29.aspx这篇文章可能会有所帮助如果您需要绝对路径到文件,您可以使用下一个代码
string soundFile = Path.Combine(Directory.GetCurrentDirectory() + "file.wav");