
J'ai réussi à lire une vidéo sur un sprite!
Chuis content, là

Code : Tout sélectionner
; Vidéo sur les sprites
;
#Window = 0
#Width = 700
#Height = 700
#Timer = 1
#Sprite = 0
#Sprite3D = 1
Global Film, Duree
Temps = 0
;- Initialisation de DirectX
If InitSprite() = 0 Or InitSprite3D() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0
MessageRequester("Erreur", "Impossible d'initialiser DirectX", #MB_ICONERROR)
End
EndIf
If InitMovie() =0
MessageRequester("Erreur", "Impossible d'initialiser l'environnement de lecture du film", #MB_ICONERROR)
End
EndIf
;- Chargement du film
Fichier$ = OpenFileRequester("Charger un film","","Fichier MPEG|*.mpg",0)
If Fichier$
Film = LoadMovie(#PB_Any, Fichier$)
Duree = MovieLength()/(MovieInfo(0)/1000)
Else
MessageRequester("Erreur","Le fichier est corrompu, ou ce format n'est pas pris en charge",#MB_ICONERROR)
EndIf
;- Procedures
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Static Temps
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
If Temps <= Duree
Temps = Temps + 1
Else
MovieSeek(0)
PlayMovie(Film, #PB_Movie_Rendered)
Temps = 0
EndIf
SetWindowTitle(#Window, "Durée = "+Str(Duree)+" secondes : Ecoulé = "+Str(Temps)+" seconde(s)")
EndSelect
EndSelect
EndProcedure
;- Ouverture de la fenêtre et de l'écran
hwnd = OpenWindow(#Window, 0, 0, #Width, #Height, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "")
OpenWindowedScreen(hwnd, 0, 0, #Width, #Height, 0, 0, 0)
If CreateSprite(#Sprite, MovieWidth(), MovieHeight(), #PB_Sprite_Texture)
Id_Sprite3D = CreateSprite3D(#Sprite3D,#Sprite)
EndIf
PlayMovie(Film, #PB_Movie_Rendered)
x_Spr = WindowWidth()/2 - MovieWidth()/2
y_Spr = WindowHeight()/2 - MovieHeight()/2
;- Lancement du Timer, et début de la boucle
Timer = SetTimer_(hwnd, #Timer, 1000, @TimerProc())
Repeat
ClearScreen(0, 0, 0) : ExamineKeyboard()
Sprite3DQuality(1)
RenderMovieFrame(UseBuffer(#Sprite))
RotateSprite3D(#Sprite3D, 2, 1)
Start3D()
DisplaySprite3D(#Sprite3D,x_Spr, y_Spr)
Stop3D()
FlipBuffers()
If KeyboardPushed(#PB_Key_Escape)
FreeMovie(Film)
KillTimer_(hwnd,#Timer)
quit = 1
EndIf
While WindowEvent() : Wend
Until quit = 1