Я пытаюсь остановить Cue, затем воспроизвести его снова. Этот код находится в цикле Update ():
Cue torpedoSound = soundBank.GetCue("torpedo");
torpedoSound.Stop(AudioStopOptions.AsAuthored);
torpedoSound.Play(); // Invalid Operation Exception
Однако я всегда получаю InvalidOperationException
в указанном выше месте. В документации говорится, что это произойдет, если Play()
вызывается для Cue
, для которого isPlaying
является истинным Но если я позвоню Stop()
непосредственно перед тем, как это может быть?
Это отлично работает:
soundBank.PlayCue("torpedo");
Сразу после этого вызов Stop()
позволяет воспроизводить звук в любом случае, что меня удивляет:
soundBank.PlayCue("torpedo");
torpedoSound.Stop(AudioStopOptions.Immediate);
Разве это не делает его никогда не слышимым для пользователя?
Кроме того, когда звук уже воспроизводится, вызов Stop()
не может его остановить.
Я новичок в C # / XNA.