gpt4 book ai didi

c# - 同时播放 2 个声音

转载 作者:太空狗 更新时间:2023-10-29 19:44:35 30 4
gpt4 key购买 nike

为任何笔记本电脑设计游戏:

我想同时播放 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 使用 native WINAPI PlaySound功能来完成不支持同时播放声音的任务。创建多个 SoundPlayer 实例无济于事。

有很多选项,其中大部分涉及为窗口的 native 音频实现大量低级 API libraryDirectSound (注意两者都不是 C# 并且需要大量的互操作代码)

最简单的选择是依靠 windows media player 为您播放音频。

添加对“C:\Windows\System32\wmp.dll”的引用

然后使用

var player = new WMPLib.WindowsMediaPlayer();
player.URL = @"..\..\bin\debug\tribal dance.wav";

注意:设置URL属性后立即开始播放

这种方法的缺点是您需要依赖媒体播放器才能使您的应用程序正常运行。从好的方面来说,您可以使用媒体播放器支持的任何文件格式。

关于c# - 同时播放 2 个声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740262/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com