我正在尝试停止一个Cue,然后再次播放它。以下代码位于Update()循环中:
然而,我总是在上述位置收到一个“InvalidOperationException”异常。文档表示,如果对“isPlaying”为true的“Cue”调用“Play()”,则会发生这种情况。但是,如果我立即调用“Stop()”,这怎么可能呢?
这个没问题:
Cue torpedoSound = soundBank.GetCue("torpedo");
torpedoSound.Stop(AudioStopOptions.AsAuthored);
torpedoSound.Play(); // Invalid Operation Exception
然而,我总是在上述位置收到一个“InvalidOperationException”异常。文档表示,如果对“isPlaying”为true的“Cue”调用“Play()”,则会发生这种情况。但是,如果我立即调用“Stop()”,这怎么可能呢?
这个没问题:
soundBank.PlayCue("torpedo");
在此之后立即调用 Stop()
可以让声音继续播放,这让我感到惊讶:
soundBank.PlayCue("torpedo");
torpedoSound.Stop(AudioStopOptions.Immediate);
这难道不会使用户听不到声音吗?
此外,当声音已经在播放时,调用Stop()
无法停止它。
我是C# / XNA的新手。