2016-01-29 223 views
-1

我有另一個虛擬問題,我找不到好的答案。c中聲音播放後的聲音#

我有這個節目,我想播放第一個聲音,之後我想播放第二個聲音。

從根本上講,這些聲音是不同的短語,如「這是聲音號碼」,「一個」和兒子等等。

我不知道爲什麼,但簡單地使用各種SoundPlayers結果只能播放最後一個聲音 - 「一個」。

 SoundPlayer dzwiek = new SoundPlayer(@"E:\sokol\mp3\zdjecie_nr.wav"); 
     SoundPlayer dzwiek2 = new SoundPlayer(@"E:\sokol\mp3\1.wav"); 

     dzwiek.Play(); 
     dzwiek2.Play(); 

請您解釋一下爲什麼會發生這種情況,我該怎麼做才能避免將來出現這個問題?

回答

0

退房這裏這個答案..

How to know when SoundPlayer has finished playing a sound

基本上,使用PlaySync。你很可能想在另一個線程上做到這一點。

如果您想要進行一些排序,將背景工作人員的聲音事件(某些限制)和PlaySync排隊可能是一個好主意。如果聲音播放了很長時間,事情就會延遲,你將不得不考慮你會遇到一些問題。

0

我剛纔看到documentationSoundPlayer類,我從來沒有用過。該文檔清楚地表明,Play方法是異步的,但是我找不到任何跡象表明您可以在播放完成時收到通知。這意味着如果你想同時播放兩個聲音,你將不得不使用PlaySync方法,這種方法具有凍結GUI的不良副作用或要求你自己進行線程處理。