J'essaye d'arrêter un Cue, puis de le rejouer. Ce code est dans la boucle de mise à jour():C# XNA: arrêt et lecture d'objets Cue (son)
Cue torpedoSound = soundBank.GetCue("torpedo");
torpedoSound.Stop(AudioStopOptions.AsAuthored);
torpedoSound.Play(); // Invalid Operation Exception
Cependant, je reçois toujours un InvalidOperationException
à l'emplacement ci-dessus. La documentation dit que cela se produira si Play()
est appelée sur un Cue
pour lequel isPlaying
est vrai. Mais si j'appelle Stop()
immédiatement avant, comment cela peut-il être?
Cela fonctionne très bien:
soundBank.PlayCue("torpedo");
Placer un appel à Stop()
immédiatement après le son qui permet de jouer de toute façon, ce qui me surprend:
soundBank.PlayCue("torpedo");
torpedoSound.Stop(AudioStopOptions.Immediate);
Si pas le rendre jamais être audible à l'utilisateur?
En outre, lorsque le son est déjà en cours de lecture, l'appel Stop()
ne parvient pas à l'arrêter.
Je suis nouveau à C#/XNA.
Je ne comprends pas, vous dites que vous appelez Stop quand il est déjà arrêté, pourquoi? Ensuite, vous dites que vous appelez stop parce qu'il joue et que vous voulez l'arrêter? Pouvez-vous m'expliquer? – Amirshk
Le son n'est pas déjà joué, mais j'appelle 'Stop()' pour être sûr. Pourtant, d'une manière ou d'une autre, ça me donne toujours une exception comme si c'était en train de jouer. –