Audiovideoplayback Stop()

gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 8 mai 2008 à 16:59
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008 - 10 mai 2008 à 15:54
Bonjour,
j'utilise audiovideoplayback et j'ai un souci avec la fonction stop()
voici ma fonction :

private
void PctBStop_Click(
object sender,
EventArgs e)
{
audio.Stop();

if (audio.Stopped)

   MessageBox.Show(
"stop");

if (audio.Paused)
   
MessageBox.Show(
"pause");
}

d'après le code si l'objet Audio est stoppé il devrait me retourner le message "top" or il me retourne "pause" ??!!!

je ne comprends pas pourquoi !!
Est ce que quelqu'un peut m'éclaircir ?? 

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
9 mai 2008 à 07:49
Salut, à mons avis c'est trop rapide.. Il faut savoir que le graph DirectShow est assez lent pour changer d'état ( state ) et qu'il met toujours le graph en pause avant de le stopper. En C++ on utilise la méthode GetState avec un paramètre "timeout" pour lui demander de renvoyer son état ( state ) uniquement lorsqu'il a fini la transition. je ne sais pas si il y'a un équivalent en C#. ( Peut être l'event "Stopping" vu que je ne vois pas d'event nommé "Stopped" ).
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
9 mai 2008 à 08:02
ok, lutinore !!


je vais jeter un oeil quand je pourrais et te tenir au courant
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
10 mai 2008 à 15:41
il n'y a rien a faire, je nte trouve pas comment résoudre ce problème même si on mets un timer à grand intervalle, jamais on ne voit le statuts à stopped mais paused
0
gabs77 Messages postés 379 Date d'inscription mardi 6 décembre 2005 Statut Membre Dernière intervention 8 octobre 2008
10 mai 2008 à 15:54
ça y est, j'ai trouvé !!
il ne faut pas utilisé Stop() car il est l'équivalent de pause() à la seule condition qu'il remet le currentTime à 0
il faut donc utilisé StopWhenReady() qui stop totalement et qui retourne bien le statut => StateFlags.Stopped
0
Rejoignez-nous