AVI

  • Hallo autoit.de
    Ich habe heute zum 1sten mal ^^ versucht ein AVI - Video in meine GUI einzubauen und bin kläglich gescheitert :(
    Code :

    Spoiler anzeigen
    [autoit]

    #RequireAdmin
    #include <GUIAvi.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $main = GUICreate ('',@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP,$WS_EX_TOPMOST)
    GUISetState (@SW_SHOW,$main)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlAVI_Create ($main,"",-1,0,0,@DesktopWidth,@DesktopHeight)

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlAVI_Open ($main,@ScriptDir&"\intro.avi")
    _GUICtrlAVI_Play ($main)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Switch GUIGetMsg ($main)
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit]

    Mit der autoit.de Suche hab ich mal wieder ;( nichts brauchbares gefunden.

    Einmal editiert, zuletzt von nof@ker2 (4. August 2010 um 16:46)

  • [autoit][/autoit][autoit][/autoit][autoit]

    #RequireAdmin
    #include <GUIAvi.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    $main = GUICreate("",@DesktopWidth,@DesktopHeight,0,0,$WS_POPUP,$WS_EX_TOPMOST)

    [/autoit][autoit][/autoit][autoit]

    GuiCtrlCreateAvi(@ScriptDir & "\intro.avi",-1,0,@DesktopWidth,@DesktopHeight, $ACS_AUTOPLAY)

    [/autoit][autoit][/autoit][autoit]

    GUISetState (@SW_SHOW)
    While 1
    Switch GUIGetMsg ($main)
    Case -3
    Exit
    EndSwitch
    WEnd

    [/autoit]
  • Hier hab mal schnell was gemacht


    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $oWMP = ObjCreate("WMPlayer.OCX")

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("", 625, 443, 192, 124)
    GUICtrlCreateObj($oWMP, 10, 10, 500, 200)

    [/autoit] [autoit][/autoit] [autoit]

    $Play = GUICtrlCreateButton("Play", 24, 264, 97, 25, $WS_GROUP)
    $Pause = GUICtrlCreateButton("Pause", 136, 264, 105, 25, $WS_GROUP)
    $Stop = GUICtrlCreateButton("Stop", 264, 264, 121, 25, $WS_GROUP)

    [/autoit] [autoit][/autoit] [autoit]

    With $oWMP
    .uiMode = "none"
    .fullscreen = False
    .url = @ScriptDir & "\AutoIt Tutorial Part 0 (Introduction).avi"
    .controls.stop ;Auskommentieren wenn autostart erwünscht ist
    EndWith

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Play
    If $oWMP.controls.isAvailable("play") Then $oWMP.controls.play()
    Case $Pause
    If $oWMP.controls.isAvailable("pause") Then $oWMP.controls.pause()
    Case $Stop
    If $oWMP.controls.isAvailable("stop") Then $oWMP.controls.stop()
    EndSwitch
    WEnd

    [/autoit]
  • @Sprenger : Ich habe nochmal 2 kurze Fragen ;) :
    1. Wie kann ich herausfinden ob das Video fertig ist oder nicht ?
    2. Wie kann ich das Video in den Fullscreenmodus bekommen ? .fullscreen = true funktioniert nicht ;)

  • zu erstens: Das lässt sich mit der Abfrage

    [autoit]

    $oWMP.controls.currentPosition = $oWMP.currentMedia.duration And $oWMP.controls.currentPosition <> 0

    [/autoit]

    lösen
    Zu 2: Vollbild geht so aber leider bekomm ich das jetze nicht hin das Das Video auf dif Gui größe angepasst wird

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $Fullscreen = True
    Global $Play,$Pause,$Stop

    [/autoit] [autoit][/autoit] [autoit]

    $oWMP = ObjCreate("WMPlayer.OCX")

    [/autoit] [autoit][/autoit] [autoit]

    Switch $Fullscreen
    Case False
    GUICreate("", 625, 443, -1, -1)
    GUICtrlCreateObj($oWMP, 10, 10, 500, 200)
    $Play = GUICtrlCreateButton("Play", 24, 264, 97, 25, $WS_GROUP)
    $Pause = GUICtrlCreateButton("Pause", 136, 264, 105, 25, $WS_GROUP)
    $Stop = GUICtrlCreateButton("Stop", 264, 264, 121, 25, $WS_GROUP)

    [/autoit] [autoit][/autoit] [autoit]

    Case True
    GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0)
    GUICtrlCreateObj($oWMP, 0, 0, @DesktopWidth, @DesktopHeight)
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    With $oWMP
    .uiMode = "none"
    .fullscreen = False
    .url = @ScriptDir & "\AutoIt Tutorial Part 0 (Introduction).avi"
    EndWith

    [/autoit] [autoit][/autoit] [autoit]

    If $Fullscreen = False Then $oWMP.controls.stop ;Auskommentieren wenn autostart erwünscht ist

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Play
    If $oWMP.controls.isAvailable("play") Then $oWMP.controls.play()
    Case $Pause
    If $oWMP.controls.isAvailable("pause") Then $oWMP.controls.pause()
    Case $Stop
    If $oWMP.controls.isAvailable("stop") Then $oWMP.controls.stop()
    EndSwitch
    If $oWMP.controls.currentPosition = $oWMP.currentMedia.duration And $oWMP.controls.currentPosition <> 0 Then MsgBox(0, "", "Zuende")
    WEnd

    [/autoit]
  • Muss für diese Lösung der Windows Media Player installiert sein? Klappt das auf allen Systemen? Genau so was habe ich gesucht, sehr nice! :D

    LG

    *edit*
    Und kann man das auch als EndlosVideo einstellen? Dass das also nicht nur 1x gemacht wird, ohne Button? Plane, ein 1-sekundiges Video als Hintergrund zu setzen...

    *edit2*
    Achso, auf GUI-Größe ist das nicht machbar? *hmmmmm*

  • Muss für diese Lösung der Windows Media Player installiert sein?


    Zwangsweise ja

    Und kann man das auch als EndlosVideo einstellen? Dass das also nicht nur 1x gemacht wird, ohne Button? Plane, ein 1-sekundiges Video als Hintergrund zu setzen...


    Ja einfach das Adlib nach GuiSetState .. einfügen und die Funktion hier nach unten

    [autoit]


    AdlibRegister("EndlessVid")

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func EndlessVid()
    $oWMP.controls.currentPosition = $oWMP.currentMedia.duration And $oWMP.controls.currentPosition <> 0 then
    If $oWMP.controls.isAvailable("play") Then $oWMP.controls.play()
    endif
    endfunc

    [/autoit]
  • Wenn du jetzt noch per Reg oder so feststellen lässt, ob WMP installiert ist, kannste daraus eig. schon ne dolle UDF machen :D...


    LG