同时播放两个声音
有没有办法同时播放两种声音?
我知道那SoundPlayer
是做不到的。我无法使用,SoundEffect
因为我相信它只是XNA的一部分。
所需的两种声音将在未知时间和随机时间被调用。播放后需要控制声音。也就是说,声音必须能够在完成播放之前停止。
回答:
参考PresentationCore
和WindowsBase
和试…
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