Ich spiele gerade mit der Movie-Library von PureBasic herum; das funktioniert soweit ganz gut und intuitiv, allerdings ist mir aufgefallen, daß wenn man zwei Filme im Wechsel abspielen wird, dieses nur solange gut geht, wenn man jeden nur einmal abspielt. Wenn man aber anschließend nochmal den ersten Film abruft, ist Ton zu hören, aber kein Bild. Das kann ich zwar umgehen, wenn ich für jeden Film ein eigenes Fenster erstelle, und jeweils den Fokus gebe, wenn dort ein Film abgespielt wird, möchte aber trotzdem gerne wissen, ob ich irgendwas initialisieren/aufrufen/whatever muß, damit das auch mit nur einem Fenster funktioniert ...
Danke!
Code: Alles auswählen
EnableExplicit
Declare play(movieID)
InitSprite()
InitMovie()
InitKeyboard()
Global xRes, yRes
Global screen
;Zwei Clips in den Speicher laden
Global movie1 = LoadMovie(#PB_Any,"movie1.mp4")
Global movie2 = LoadMovie(#PB_Any,"movie2.mp4")
play(movie1) ;Ersten Film abspielen
CloseWindow(screen) ;Fenster schließen
play(movie2) ;Zweiten Film abspielen
CloseWindow(screen)
play(movie1) ;Den ersten Film wiederholen (Bild bleibt schwarz)
CloseWindow(screen)
End
Procedure play(movieID)
xRes = MovieWidth(movieID)
yRes = MovieHeight(movieID)
;Fenster gemäß Filmgröße initialisieren
screen = OpenWindow(#PB_Any,0,0,xRes,yRes,"Base",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(screen),0,0,xRes,yRes)
;Film abspielen ...
PlayMovie(movieID,WindowID(screen))
Repeat
If WaitWindowEvent(16) = #PB_Event_CloseWindow
End
EndIf
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Return) ;... bis RETURN-Taste gedrückt wird
StopMovie(movieID)
EndProcedure