C # XNA: fermarsi e giocare Cue (suono) oggetti
Domanda
Sto cercando di fermare un Cue, poi giocare di nuovo. Questo codice è nel ciclo di aggiornamento ():
Cue torpedoSound = soundBank.GetCue("torpedo");
torpedoSound.Stop(AudioStopOptions.AsAuthored);
torpedoSound.Play(); // Invalid Operation Exception
Tuttavia, ho sempre arrivare un InvalidOperationException
nella posizione sopra. La documentazione dice che si verificherà se Play()
viene chiamato su un Cue
per il quale isPlaying
è vero. Ma se chiamo Stop()
immediatamente prima, come può essere?
Questo funziona bene:
soundBank.PlayCue("torpedo");
Esecuzione di una chiamata a Stop()
subito dopo che consente al suono di giocare in ogni caso, che mi sorprende:
soundBank.PlayCue("torpedo");
torpedoSound.Stop(AudioStopOptions.Immediate);
Qualora non questo lo rendono mai essere udibile per l'utente?
Inoltre, quando il suono è già in riproduzione, chiamando Stop()
non riesce a fermarlo.
Sono nuovo di C # / XNA.
Soluzione
Una volta che un Cue viene arrestato non può più essere utilizzato. Dovete ottenere una nuova istanza Cue dal motore audio.
Fare riferimento a questo esempio: http://msdn.microsoft.com/en-us/library/dd940205. aspx
Per quanto riguarda l'arresto, Cue non si ferma immediatamente quando si chiama Stop. Si può prendere una cornice o due, o anche più se c'è una transizione finale definito.