同时播放两个声音

有没有办法同时播放两种声音?

我知道那SoundPlayer是做不到的。我无法使用,SoundEffect因为我相信它只是XNA的一部分。

所需的两种声音将在未知时间和随机时间被调用。播放后需要控制声音。也就是说,声音必须能够在完成播放之前停止。

回答:

参考PresentationCoreWindowsBase和试…

var p1 = new System.Windows.Media.MediaPlayer();

p1.Open(new System.Uri(@"C:\windows\media\tada.wav"));

p1.Play();

// this sleep is here just so you can distinguish the two sounds playing simultaneously

System.Threading.Thread.Sleep(500);

var p2 = new System.Windows.Media.MediaPlayer();

p2.Open(new System.Uri(@"C:\windows\media\tada.wav"));

p2.Play();

我收到了一张低俗的选票,可能是因为乍一看,这看起来像是在第一个声音播放完后播放第二个声音。并非如此,它们由Windows异步播放。睡眠在那里,所以如果您逐字测试此代码,您可以听到声音一起播放,没有延迟就不会引起注意,因为它们是相同的声音。

这段代码演示了两种声音在彼此独立的线程上播放的情况,这毫无意义,因为播放不会受到阻碍

new System.Threading.Thread(() => {

var c = new System.Windows.Media.MediaPlayer();

c.Open(new System.Uri(@"C:\windows\media\tada.wav"));

c.Play();

}).Start();

System.Threading.Thread.Sleep(500);

new System.Threading.Thread(() => {

var c = new System.Windows.Media.MediaPlayer();

c.Open(new System.Uri(@"C:\windows\media\tada.wav"));

c.Play();

}).Start();

http://msdn.microsoft.com/zh-

cn/library/system.windows.media.mediaplayer.stop.aspx 该类还具有您需要停止播放的控件

以上是 同时播放两个声音 的全部内容, 来源链接: utcz.com/qa/427946.html

回到顶部