同时播放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属性后立即开始播放

这种方法的缺点是您依赖媒体播放器来使您的应用程序正常工作。 在好的方面,您可以使用任何文件格式的媒体播放器支持。