PlayMovie

Just starting out? Need help? Post your questions and find answers here.
Trion
New User
New User
Posts: 7
Joined: Tue Dec 27, 2016 11:13 pm

PlayMovie

Post by Trion »

[5.71 Beta2 LTS (x32)] - Windows 10

Playmove does not work i only get a white window

PureBasic Version 5.51 (x32) is working, all versions higher than 5.51 will not work anymore

Code: Select all

InitMovie()

OpenWindow(0, 0, 0, 400, 300, "A screen in a window...", #PB_Window_SizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 170, 135, 45, 20, "Quit")
PanelGadget(1,5,5,390,290)
AddGadgetItem(1,-1,"2")
AddGadgetItem(1,0,"1")
CloseGadgetList()

LoadMovie(0,"test.wmv")
SetGadgetState(1,0)

Repeat
 Event = WaitWindowEvent()
    If Event=#PB_Event_Gadget 
        Num =GetGadgetState(1) 
        Result$ = GetGadgetItemText(1, Num,0)
        If Result$ = "2"
            If Movieflag = 0
                PlayMovie(0,GetTopWindow_(GadgetID(1)))
                ResizeMovie(0,0,(265-(MovieHeight(0)*384/MovieWidth(0)))/2,384,MovieHeight(0)*384/MovieWidth(0))
            Else
                ResumeMovie(0)
            EndIf 
        ElseIf Result$ = "1"
            If IsMovie(0)
               PauseMovie(0)
               Movieflag = 1
            EndIf
        EndIf
    EndIf
Until Event = #PB_Event_CloseWindow
dcr3
Enthusiast
Enthusiast
Posts: 165
Joined: Fri Aug 04, 2017 11:03 pm

Re: PlayMovie

Post by dcr3 »

Sorry for the earlier post. :oops:

Hope this isof any help.

Code: Select all

InitMovie()
flg= #PB_Window_SizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered
OpenWindow(0, 0, 0, 400, 300, "A screen in a window...",flg)
ButtonGadget(0, 170, 135, 45, 20, "Quit")
PanelGadget(1,5,5,390,290)
AddGadgetItem(1,-1,"2")
AddGadgetItem(1,0,"1")

ButtonGadget(16, 3, 14, 100, 20, "Open")
ButtonGadget(17, 3, 34, 100, 20, "Play")
ButtonGadget(18, 3, 56, 100, 20, "Pause") 
CloseGadgetList()

LoadMovie(0,"carribean.wmv")
SetGadgetState(1,0)

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      AppQuit = 1
      
    Case #PB_Event_Menu 
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()

    Case 16 ; "Open")
      MovieName$ = OpenFileRequester("Choose the movie to play", "", "Movie files|*.wmv|*.mp4|All Files|*.*", 0)
      LoadMovie(0, MovieName$)
    
     Case 17   ;Play
      SetGadgetState(1,1)
      If SetGadgetState(17,1)
            
      PlayMovie(0,GetTopWindow_(GadgetID(1)))
      ResizeMovie(0,0,(265-(MovieHeight(0)*384/MovieWidth(0)))/2,384,MovieHeight(0)*384/MovieWidth(0))
      Else
      ResumeMovie(0)
      EndIf
              
     Case 18 ;Pause
          If SetGadgetState(18,1) 
           PauseMovie(0) 
          Else
          ResumeMovie(0)
          EndIf
     EndSelect

  EndSelect
Until AppQuit
Fred
Administrator
Administrator
Posts: 16616
Joined: Fri May 17, 2002 4:39 pm
Location: France
Contact:

Re: PlayMovie

Post by Fred »

Since 5.60, the PanelGadget() can have 2 EventType(): change and resize. Resize is always fired when a new panel is first displayed to allow layout. So you will need to take that in account in your code.

Code: Select all

InitMovie()

OpenWindow(0, 0, 0, 400, 300, "A screen in a window...", #PB_Window_SizeGadget | #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 170, 135, 45, 20, "Quit")
PanelGadget(1,5,5,390,290)
AddGadgetItem(1,-1,"2")
AddGadgetItem(1,0,"1")
CloseGadgetList()

LoadMovie(0,"720.wmv")
SetGadgetState(1,0)

Repeat
  Event = WaitWindowEvent()
  If Event=#PB_Event_Gadget
    
    If EventGadget() = 1 And EventType() = #PB_EventType_Change ; Important to filter on the correct event type
      Num = GetGadgetState(1)
      Result$ = GetGadgetItemText(1, Num,0)
      If Result$ = "2"
        If Movieflag = 0
          PlayMovie(0,GetTopWindow_(GadgetID(1)))
          ResizeMovie(0,0,(265-(MovieHeight(0)*384/MovieWidth(0)))/2,384,MovieHeight(0)*384/MovieWidth(0))
        Else
          ResumeMovie(0)
        EndIf
      ElseIf Result$ = "1"
        If IsMovie(0)
          PauseMovie(0)
          Movieflag = 1
        EndIf
      EndIf
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow
Post Reply