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

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#1

Message 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 !
Fichiers joints
Splash.zip
(65.88 Kio) Téléchargé 92 fois
Modifié en dernier par pierrotm777 le jeu. 04 mars 2010 20:06, modifié 2 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#2

Message par Tlem »

Votre titre est très étrange : Lancer une comme à la fin d'une vidéo
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#3

Message 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 .
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#4

Message 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
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#5

Message 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 .
Modifié en dernier par pierrotm777 le mar. 15 déc. 2009 06:54, modifié 1 fois.
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#6

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#7

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#8

Message par pierrotm777 »

Désolé , c'est une mauvaise habitude .
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#9

Message par pierrotm777 »

Si quelqu'un pouvais me donner un conseil svp malgté mes mauvaises habitudes ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

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

#10

Message 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:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

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

#11

Message 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
Répondre