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
Code : Tout sélectionner
#include <DSEngine.au3>
Func _Avi()
; Create GUI as usual
$SplashFiles = "video.avi"
; $hWnd=GUICreate("Test video",800,600 )
$hWnd = GUICreate("video",800,600,0,0,$WS_POPUP, $WS_EX_TOPMOST)
GUISetState()
$Annuler = GUICtrlCreateButton("QUIT", 700, 550, 100, 50)
GUICtrlSetTip(-1, "Exit the Program !")
; WinSetTrans ($hWnd, '', $Transparency)
; Opens the dll and create a interface to the engine
Engine_Startup("DSEngine_UDF.dll")
; Loads a media file (this will also load the necesary filters)
Engine_LoadFile($SplashFiles,$hWnd)
;test if the video is finished
$AviLengh = Engine_GetLength()
$AviPosition = Engine_GetPosition()
; Starts the playback
Engine_StartPlayback()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE, $Annuler
SplashTextOn("Exit Program", "You skip the " & _
"video application !!!", 250, 80, $WidthSWF/3, $HeightSWF/2.5, 0, "", 12, 800)
Sleep(3000)
GUIDelete($hWnd)
Engine_Shutdown()
LaunchAppli()
Exit
EndSwitch
WEnd
EndFunc
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 !