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