Seite 1 von 1

Load/Play Movie Bug?

Verfasst: 14.02.2006 15:05
von cYberToOl
Warum muss LoadMovie im Screen-Modus vor OpenScreen stehn??

Folgender Code geht :

Code: Alles auswählen



If InitSprite() And InitKeyboard() And InitMovie()
If OpenScreen(1024,768,32,"Movie")


; nach OpenScreen
LoadMovie(1,"C:\Unbenannt.mpg")
PlayMovie(1,ScreenID())


Repeat
Delay(1)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) 

CloseScreen()
EndIf
EndIf


End

Folgender geht nicht :

Code: Alles auswählen



If InitSprite() And InitKeyboard() And InitMovie()
; vor OpenScreen
LoadMovie(1,"C:\Unbenannt.mpg")
If OpenScreen(1024,768,32,"Movie")



PlayMovie(1,ScreenID())


Repeat
Delay(1)
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape) 

CloseScreen()
EndIf
EndIf


End
Würd mich mal interessieren.

Verfasst: 14.02.2006 15:51
von Benubi
Du musst noch eine Ausgabe-schleife machen mit Flipbuffers()

am besten diese Zeile

Code: Alles auswählen

ExamineKeyBoard()
mit der ersetzen

Code: Alles auswählen

ExamineKeyBoard():FlipBuffers()
;-)

Verfasst: 14.02.2006 16:01
von Benubi
ok ich habe es probiert und es funktioniert wirklich nicht mehr so einfach, versuch mal das:

Code: Alles auswählen


If InitSprite() And InitKeyboard() And InitMovie() 
; vor OpenScreen 
LoadMovie(1,OpenFileRequester("Load movie","C:\Unbenannt.mpg","",0) )
If OpenScreen(1024,768,32,"Movie") 

; Movie-Sprite erzeugen
If CreateSprite(1, MovieWidth(1),MovieHeight(1))
    PlayMovie(1,#PB_Movie_Rendered) 
    Else
    
    CloseScreen()
    MessageRequester("Fehler","Konnte sprite nicht erstellen")
    End
EndIf


Repeat 
Delay(1) 
ExamineKeyboard() 
If IsScreenActive()
    ; Grauer Hintergrund
    ClearScreen($777777)
    RenderMovieFrame(1, (SpriteID(1))) ; Movie in Sprite ausgeben
    ; Movie "zentriert" anzeigen
    DisplaySprite(1,(1024/2)-(SpriteWidth(1)/2),(768/2)-(SpriteHeight(1)/2)
FlipBuffers()
EndIf
Until KeyboardPushed(#PB_Key_Escape) 
CloseScreen() 
EndIf 
EndIf 
End

Verfasst: 14.02.2006 17:16
von cYberToOl
Okay das mit der Sprite-Lösung hatte ich auch schon ausprobiert. Werd das Movie einfach nach OpenScreen laden. Weiß zwar nicht warum das andere nicht geht aber was solls. Erstmal danke für die antwort.

Verfasst: 14.02.2006 17:40
von Benubi
jo, sorry ich habe erst zuspät gemerkt dass ich nicht richtig gelesen habe :oops:

die sprite lösung funktioniert egal wann man den movie lädt, man muss nur InitMovie() vorher aufrufen, wie ich festgestellen musste :mrgreen:

Vielleicht muss man DirectX als Subsystem einfügen !?

Verfasst: 14.02.2006 18:18
von Green Snake
:?

also bei mir funzt alles