Load/Play Movie Bug?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
cYberToOl
Beiträge: 5
Registriert: 14.02.2006 14:07

Load/Play Movie Bug?

Beitrag 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.
Benubi
Beiträge: 187
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Beitrag 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()
;-)
Benubi
Beiträge: 187
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Beitrag 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
Benutzeravatar
cYberToOl
Beiträge: 5
Registriert: 14.02.2006 14:07

Beitrag 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.
Benubi
Beiträge: 187
Registriert: 22.10.2004 17:51
Wohnort: Berlin, Wedding

Beitrag 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 !?
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

:?

also bei mir funzt alles
-.-"
Gesperrt