如何在 C# 中同时播放多个声音?

Posted

技术标签:

【中文标题】如何在 C# 中同时播放多个声音?【英文标题】:How can I play multiple sounds in C# simultaneously? 【发布时间】:2022-01-16 05:05:30 【问题描述】:

我目前在我的 Windows 窗体应用程序中使用 System.Media 的 SoundPlayer,但我无法同时播放多个声音。我知道,这个主题已经回答了一些问题,但是如果我尝试使用 Windows Media Player:

using System.Windows.Media

我收到一个错误:

找不到“System.Windows.Media”(“类型或命名空间名称“Media”在命名空间 Windows.Media 中不可用”)

我认为缺少一个程序集,但我不知道如何添加它。有没有一种简单的方法可以同时播放多个声音?

【问题讨论】:

未测试但可能像这样***.com/questions/1285294/… 这正是我的意思......他们正在使用 System.Windows.Media,什么对我不起作用......我怎样才能让它工作? 在哪里可以找到解决方案资源管理器? 问题:你使用什么目标框架? .NET 5.0(或更高版本)或 .NET Framework? @PMF 我认为它是“NET Core 3.1”,但我不确定它,我不知道在哪里可以再次看到它...... 【参考方案1】:

在哪里可以找到解决方案资源管理器?

使用菜单栏中的快速搜索:

它会告诉你在哪里可以找到菜单中的条目或使用哪个快捷方式。

如何添加参考?

使用菜单栏中的快速搜索:

它会告诉你在菜单中哪里可以找到动作。

“System.Windows.Media”未找到

Can't find System.Windows.Media namespace:它是PresentationCore.dll 的一部分。使用搜索框快速查找:

【讨论】:

非常感谢您的回答,但如果我在搜索栏中写“解决方案”或“推荐人”,我找不到像您这样的东西。也许我必须更改语言?但是,如果我输入解决方案的德语翻译,也没有有意义的结果。我是否使用了错误的搜索栏?我做错了什么? @heermaas:解决方案资源管理器通常是打开的,在代码的右侧或左侧。在德语中,它被称为“Projektmappen-Explorer”。它可能会在屏幕边缘一直折叠(在垂直选项卡中)。如果你真的没有,你可以使用“Ansicht”菜单中最顶部的条目打开它。 我知道,我在程序集管理器的 COM 选项卡上是错误的,但是没有程序集选项卡,正如您在我的程序集管理器的屏幕截图中看到的那样 @heermaas:这是什么类型的项目?你确定这是一个 WinForms 项目吗? Web 项目或 C++ 项目中缺少程序集部分。你用的是哪个 VS 版本? 是的,我正在使用winforms的全部功能(比如带有按钮、标签和类似东西的表单),所以它必须是一个WinForm项目,对吧?我正在使用 VS Community 2019,但我在哪里可以看到它的详细版本?另一个问题:我怎样才能粘贴普通图片(像你一样)而不是链接?【参考方案2】:

如果你想在C#中同时播放多个声音,可以参考以下步骤: 首先,右键单击解决方案资源管理器中的引用,然后选择添加引用。

其次,选择右上角可以搜索的Windows Media Player。

最后,您可以使用以下代码:

using System;
using WMPLib;
namespace ConsoleApp3

    class Program
    
        static void Main(string[] args)
        
            var sound1 = new WindowsMediaPlayer();
            sound1.URL = @"path of sound1";
            var sound2 = new WindowsMediaPlayer();
            sound2.URL = @"path of sound2";
            Console.ReadLine();
        
    

【讨论】:

以上是关于如何在 C# 中同时播放多个声音?的主要内容,如果未能解决你的问题,请参考以下文章

如何同时在多个设备中播放声音

c#如何播放多个.wav文件,并设置每个文件的音量

C# 使用 SoundPlayer 同时发出多个声音

如何同时播放多个声音文件?

如何使用winsound同时播放多个声音?

在javascript中同时播放多个声音