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();
}

我想播放各种声音而不会互相打断。

4

2 回答 2

1

我认为您不需要使用线程。您可以同时拥有 16 个 SoundEffectInstance。还不够吗?

检查这个例子

他们只持有三个SoundEffect实例。

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

并通过某些事件播放它们。

于 2012-10-20T12:06:07.573 回答
0

如果确实需要使用线程,请使用BackgroundWorker。这很好,很容易!

于 2012-10-23T13:00:35.647 回答