Page 1 sur 1

[R] Lancer une commande à la fin d'une vidéo

Posté : dim. 13 déc. 2009 17:32
par pierrotm777
Bonjour,
J'ai trouvé sur les forum autoit une fonction qui me permet de lire une vidéo dans une fenêtre.
► Afficher le texte
Mon problem est que si je clic sur le bouton "quit", ma vidéo s'arrête bien et la commande LaunchAppli() lance bien une commande que je définie dans
un fichier ini .
Mais si je laisse la vidéo aller jusqu'à la fin , alors la commande LaunchAppli() n'est pas lancée.

Je pense avoir trouvé dans l'include DSEngine.au3 les fonctions Engine_GetLength() qui donne la longueur de la vidéo et Engine_GetPosition() la
position en cours de la vidéo.
Je me suis donc dis qu'en vérifiant si $AviPosition = $AviLengh , alors je pourrais aller à ma commande LaunchAppli() .
$AviLengh = Engine_GetLength()
$AviPosition = Engine_GetPosition()
Mais je ne trouve pas où placer ma boucle de test ni la formuler .

Je joinds la dll et les fichiers include .

Merci pour votre aide !

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 00:17
par Tlem
Votre titre est très étrange : Lancer une comme à la fin d'une vidéo

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 11:40
par pierrotm777
Tlem a écrit :Votre titre est très étrange : Lancer une comme à la fin d'une vidéo
Oui , c'est bien mon problème .
La fonction que j'ai trouvé permet de lire une vidéo dans une fenêtre à partir de commandes DirectShow .

Hors , j'ai créé un petit fichier .avi de 10s pour tester la fonction et si je laisse la vidéo se dérouler jusqu'au bout, mon programme reste sur la vidéo sans lancer ma commande alors que ma commande est bien lancée si je la stoppe avant la fin .

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 15:36
par ani
il est vrai que le titre ne veut trop rien dire ^^' mais le comme < doit etre com
enfin passont, alors dasn la votre boucle while indiquer ceux-ci.

Code : Tout sélectionner

while 1
If $AviLengh then LaunchAppli()
$msg = GUIGetMsg()
case ...
...
wend
ou dans une case else

Code : Tout sélectionner

    While 1
        $msg = GUIGetMsg()
        Switch $msg
            Case $GUI_EVENT_CLOSE, $Annuler
            ......
            case else
                If Avilenght then
                    [le code]
        EndSwitch    
WEnd

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 16:17
par pierrotm777
Merci de votre aide , je n'étais pas loin , j'avias bien tenté un case mais mal écrit .

Je teste de suite

Merci encore .

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 16:23
par pierrotm777
Alors voici ma modification de la boucle avec avec pour choix la deuxième solution:

Pour l'instant , j'ai commenté le lancement de mon application, mais je devrais voir mon message uniquement là pour l'essaie , mais non , rien aprés la fin de la vidéo ne se passe !
► Afficher le texte


Je viens d'essayer cela, et cette fois ci il croit que la vidéo est finie et sort de suite:
► Afficher le texte

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : lun. 14 déc. 2009 21:50
par Tlem
@pierrotm777
Je vous ai déjà expliqué qu'il est inutile de citer le message qui précède le votre.
Merci d'éditer vos deux message précédent afin de supprimer la citation.

Merci.

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : mar. 15 déc. 2009 06:56
par pierrotm777
Désolé , c'est une mauvaise habitude .

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : mer. 16 déc. 2009 06:10
par pierrotm777
Si quelqu'un pouvais me donner un conseil svp malgté mes mauvaises habitudes ?

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : mer. 16 déc. 2009 08:43
par Tlem
Vous avez mis au début du script : $AviLengh = Engine_GetLength()
Donc la variable $AviLengh doit contenir la longueur de la vidéo.

Il vous suffit de contrôler régulièrement avec Engine_GetPosition() si vous n'êtes pas à la fin de la vidéo et voilà.
Genre :

Code : Tout sélectionner

If Engine_GetPosition() >= $AviLengh Then MaFonction()
Vous devez évidement placer ce code au bon endroit dans votre boucle While. :wink:

Re: [..] Lancer une comme à la fin d'une vidéo

Posté : mer. 16 déc. 2009 08:58
par pierrotm777
Merci Tlem de votre aide, cela fonctionne comme je le voulais.

Pour info , voici ma modification!
► Afficher le texte
Franchement , je n'était pas loin , je pensais que un test sur = suffirait !

Merci encore