播放声音,等待它完成,然后做一些事情?

Oma*_*eji 4 c# audio multithreading synchronization

我正在编写一个Windows Forms应用程序,它应该播放三个声音文件,并且在每个声音文件的末尾,它是为了改变图像的来源.

我可以用它来播放声音System.Media.SoundPlayer.然而,似乎在不同的线程中播放声音,继续.

这样的净效果是只播放最后一个声音并且所有图像都被改变.

我已经尝试了Thread.Sleep,但是它会睡眠整个GUI,在睡眠期之后,所有事情都会立刻发生,并且它会播放最后的声音.

UPDATE

我认为PlaySynch正在工作,但它似乎冻结了我的GUI,这不太理想.我还可以做些什么?

Bir*_*iri 10

你试过SoundPlayer.PlaySync方法吗?从帮助:

PlaySync方法使用当前线程播放.wav文件,防止线程处理其他消息,直到加载完成.