代码之家  ›  专栏  ›  技术社区  ›  Kelly

WPF SoundPlayer多声道声音?

  •  4
  • Kelly  · 技术社区  · 10 年前

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

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

    我如何使用多个声音频道,以便如果两个声音同时出现,它们将同时播放,而不是一个打断另一个?

    1 回复  |  直到 10 年前
        1
  •  4
  •   Rune Vikestad    9 年前

    据我所知 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();
    

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