我有一个以随机间隔发出声音的应用。当两个声音碰撞时,它们不会很好地相互叠加,但是一个会中断另一个声音。
我使用SoundPlayer播放声音。 (这是一个WPF应用程序)
如何使用多个声道,以便如果两个声音同时出现,它们同时播放而不是一个中断另一个声音?
答案 0 :(得分:3)
据我所知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();
睡眠只是为了给播放添加一点延迟,清楚地表明两个声音实际上同时播放。