2012-10-20 89 views
0

我試圖在新線程中播放聲音,以便在播放時其他聲音不會中斷它。線程不在後臺運行

但它不起作用。雖然新線程在後臺運行(我假設),但後來播放的聲音會中斷它。

ParameterizedThreadStart pts; 
     Thread t; 

private void playStreak(Object p) 
     { 
      SoundEffect sound = SoundEffect.FromStream(Application.GetResourceStream(new Uri("SOUNDFX/BOMB.wav", UriKind.Relative)).Stream); 
      SoundEffectInstance instance = sound.CreateInstance(); 
      instance.Play(); 
     } 

private void playAsThread() 
{ 
    pts = new ParameterizedThreadStart(playStreak); 
    t = new Thread(pts); 
    t.Name = "Streak sound!"; 
    t.Start(); 
} 

我想在不中斷對方的情況下播放各種聲音。

+0

你讀過這個問題嗎? http://stackoverflow.com/questions/6240002/play-two-sounds-simultaneusly – Fabske

+0

不適合silverlight – QKL

回答

1

我認爲你不需要使用線程。您可以在某個時刻擁有16個SoundEffectInstances。這不夠嗎?

檢查this example

他們只是持有三個SoundEffect實例。

private SoundEffect coyoteSound; 
    private SoundEffect birdSound; 
    private SoundEffect ambienceSound; 

並通過某些事件播放它們。

+0

這真的有竅門! – QKL