Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF SoundPlayer多声道声音?_Wpf_Soundplayer - Fatal编程技术网

WPF SoundPlayer多声道声音?

WPF SoundPlayer多声道声音?,wpf,soundplayer,Wpf,Soundplayer,我有一个以随机间隔发出声音的应用程序。当两个声音发生碰撞时,它们不会很好地相互叠加,但一个会打断另一个 我用SoundPlayer播放声音。(这是WPF应用程序) 如何使用多个声音通道,以便在两个声音同时出现时,两个声音同时播放,而不是一个声音打断另一个声音?据我所知,SoundPlayer使用本机功能,不支持同时播放多个声音 但是,您可以使用System.Windows.Media.MediaPlayer执行此操作 var p1 = new MediaPlayer(); p1.Open(new

我有一个以随机间隔发出声音的应用程序。当两个声音发生碰撞时,它们不会很好地相互叠加,但一个会打断另一个

我用SoundPlayer播放声音。(这是WPF应用程序)


如何使用多个声音通道,以便在两个声音同时出现时,两个声音同时播放,而不是一个声音打断另一个声音?

据我所知,SoundPlayer使用本机功能,不支持同时播放多个声音

但是,您可以使用
System.Windows.Media.MediaPlayer
执行此操作

var p1 = new MediaPlayer();
p1.Open(new Uri(@"C:\windows\media\ringout.wav"));
p1.Play();

System.Threading.Thread.Sleep(250);

var p2 = new MediaPlayer();
p2.Open(new System.Uri(@"C:\windows\media\ringout.wav"));
p2.Play();

睡眠只是为了给播放增加一点延迟,明确这两种声音实际上是同时播放的。

通常多声道指的是单独的扬声器。你也期待同样的结果吗?或者您正在寻找同时播放多个声音流?我正在寻找同时播放两个声音。我有多个声音几乎同时出现,希望它们重叠。现在第二个声音缩短了第一个声音。试着用不同的播放器播放不同的声音。仍然不起作用。Task.Run(()=>{var player=newsoundplayer(@“c:\Computer_Magic.wav”);player.Play();});把它放在一个按钮上,点击它,你会看到它会中断第一次呼叫。作为一种替代方法,使用
MediaElement
也可以解决你的问题。延迟如何显示他们同时在播放?我可以发誓我试过了,但非常感谢你,享受赏金吧@特雷弗:它将比第一个声音晚250毫秒开始播放第二个声音,使我们人类更容易听到这两个声音实际上是重叠的。在没有睡眠的情况下,你可能会听到,但不会那么明显。