有没有办法在c#控制台应用程序中同时播放两种声音?
我正在用c#做一个文字游戏。但我想同时拥有多种声音。所以我试着用SoundPlayer。但每当我加载另一个声音时,它就会切断另一个声音。如果这有道理的话。我是编程新手,所以请试着像IM5一样解释 如果你有两种不同的声音想一起演奏 下面的示例是Console.Beep,它可以扩展到其他声音 您可以将Console.Beep()替换为要播放的其他声音有没有办法在c#控制台应用程序中同时播放两种声音?,c#,audio,console-application,soundplayer,C#,Audio,Console Application,Soundplayer,我正在用c#做一个文字游戏。但我想同时拥有多种声音。所以我试着用SoundPlayer。但每当我加载另一个声音时,它就会切断另一个声音。如果这有道理的话。我是编程新手,所以请试着像IM5一样解释 如果你有两种不同的声音想一起演奏 下面的示例是Console.Beep,它可以扩展到其他声音 您可以将Console.Beep()替换为要播放的其他声音 将以上2添加到您的命名空间中 //First sound you want to play var first = await Task.Run(
将以上2添加到您的命名空间中
//First sound you want to play
var first = await Task.Run(() => Console.Beep());
//Optional Delay
await Task.Delay(500); //Does not halt the current thread
//Second sound you want to play
var second = await Task.Run(() => Console.Beep(500,1000));
我一直在同一个问题上挣扎
简单的回答是你不能。在任何给定过程中,系统只允许一个通道连接到声音接口。因此,当你开始一个新的声音时,前一个声音就会终止。@RyanWilson,你会如何制作一个新的声音播放器?我不明白。你可以用Beep做原型,看看是否可以一起玩。你可以考虑扩展到其他扫描你添加了一些明确的例子,你尝试了吗?对不起,我知道我必须听起来像一个完全白痴在这里,但我真的不知道。为什么我会在整件事上出错?当然。嗯,它说“不能将void赋值给隐式类型的变量”您的代码可以工作,但是它仍然会停止音乐:/sorry无法测试,我编辑了代码。以前是同步的。
//First sound you want to play
var first = await Task.Run(() => Console.Beep());
//Optional Delay
await Task.Delay(500); //Does not halt the current thread
//Second sound you want to play
var second = await Task.Run(() => Console.Beep(500,1000));