我正在尝试在新线程中播放声音,以便其他声音在播放时不会中断它。
但它不起作用。虽然新线程在后台运行(我假设),但之后播放的声音会中断它。
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 :(得分:1)
我认为你不需要使用线程。您可以在一刻拥有16个SoundEffectInstances。还不够吗?
检查this example。
他们只持有三个SoundEffect
个实例。
private SoundEffect coyoteSound;
private SoundEffect birdSound;
private SoundEffect ambienceSound;
并通过某种活动来播放它们。
答案 1 :(得分:0)
如果确实需要使用线程,请使用BackgroundWorker。这很好,很容易!