Anscheinend kannst du ein Video nur einmal auf einem bestimmten Fenster abspielen. Oder bin ich blind?
Mit folgendem Code mit OpenWindow mit statischer ID habe ich genau das gleiche Problem:
Code:
EnableExplicit
InitMovie()
Global movie1 = LoadMovie(#PB_Any,"C:\Ray\1.avi")
Global movie2 = LoadMovie(#PB_Any,"C:\Ray\2.avi")
Global CurrentMovie
Procedure play(movieID)
Protected xRes
Protected yRes
xRes = MovieWidth(movieID)
yRes = MovieHeight(movieID)
If OpenWindow(1, 0, 0, xRes, yRes, "Movie", #PB_Window_SystemMenu, WindowID(0))
AddKeyboardShortcut(1, #PB_Shortcut_Return, 1)
PlayMovie(movieID, WindowID(1))
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CurrentMovie = movie1
play(CurrentMovie)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 1
If CurrentMovie = movie2
CurrentMovie = movie1
Else
CurrentMovie = movie2
EndIf
play(CurrentMovie)
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf
Mit folgendem Code mit OpenWindow mit #PB_Any würde es zwar gehen, aber man sieht, dass das Video immer von dem anderen Fenster geklaut wird:
Code:
EnableExplicit
InitMovie()
Global movie1 = LoadMovie(#PB_Any,"C:\Ray\1.avi")
Global movie2 = LoadMovie(#PB_Any,"C:\Ray\2.avi")
Global CurrentMovie
Global LastWindow
Procedure play(movieID)
Protected xRes
Protected yRes
Protected SecWindow
xRes = MovieWidth(movieID)
yRes = MovieHeight(movieID)
SecWindow = OpenWindow(#PB_Any, Random(500), Random(500), xRes, yRes, "Movie", #PB_Window_SystemMenu, WindowID(0))
If SecWindow
AddKeyboardShortcut(SecWindow, #PB_Shortcut_Return, 1)
PlayMovie(movieID, WindowID(SecWindow))
EndIf
LastWindow = SecWindow
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CurrentMovie = movie1
play(CurrentMovie)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 1
;CloseWindow(LastWindow)
If CurrentMovie = movie2
CurrentMovie = movie1
Else
CurrentMovie = movie2
EndIf
play(CurrentMovie)
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf