我有一个以随机间隔发出声音的应用程序。当两种声音发生碰撞时,它们不会很好地相互叠加,而是一种会打断另一种。
我正在使用 SoundPlayer 播放声音。(这是一个 WPF 应用程序)
如何使用多个声音通道,以便如果同时出现两种声音,它们会同时播放,而不是一个打断另一个?
我有一个以随机间隔发出声音的应用程序。当两种声音发生碰撞时,它们不会很好地相互叠加,而是一种会打断另一种。
我正在使用 SoundPlayer 播放声音。(这是一个 WPF 应用程序)
如何使用多个声音通道,以便如果同时出现两种声音,它们会同时播放,而不是一个打断另一个?
据我所知,使用不支持同时播放多个声音SoundPlayer
的本机PlaySound功能。
但是,您可以使用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();
睡眠只是为了给播放增加一点延迟,清楚地表明这两种声音实际上是同时播放的。