Came across this on me HD today.
Not really sure how useful it is or even if it works properly...:o/
Still, something to play with :o)
;--------------------------------------------------------------------------------------
;winmm.decls
;--------------------------------------------------------------------------------------
;.lib "winmm.dll"
;
;winmm_mciSendString%(Command$,ReturnString*,ReturnLength%,Callback%):"mciSendStringA"
;winmm_mciExecute%(Text$):"mciExecute"
;winmm_mciGetErrorString%(Error%, Buffer*, Length%):"mciGetErrorStringA"
;--------------------------------------------------------------------------------------
AppTitle "test"
Graphics3D 640,480, 0, 2
bbHwnd=FindWindow("Blitz Runtime Class","test")
movie = open_avi(bbHwnd, "C:\fraps\wg.avi", 0, 0, GraphicsWidth(), GraphicsHeight())
play_avi(movie)
WaitKey()
close_avi(movie)
WaitMouse()
End
Function open_avi(hwnd, video$, x=0, y=0, w=0, h=0, hidden=1)
Local alias = MilliSecs(), ret
ret = winmm_mciExecute("open " + video$ + " type AVIVideo alias " + alias + " parent " + hwnd + " Style child")
If ret = False
close_avi(alias)
Return 0
EndIf
winmm_mciExecute("put " + alias + " window at " + x + " " + y + " " + w + " " + h)
If hidden Then winmm_mciExecute("window " + alias + " state hide")
Return alias
End Function
Function length_avi(alias)
Local result, t, c, out$
result = CreateBank(12)
winmm_mciExecute("set " + alias + " time format frames") ; Should be the default. Just making sure.
winmm_mciSendString("status " + alias + " length", result, 12, 0)
For t=0 To 11
c = PeekByte(result, t)
If c = 0
Exit
Else
out$ = out$ + Chr$(c)
EndIf
Next
FreeBank result
Return out$
End Function
Function close_avi(alias)
winmm_mciExecute("close " + alias)
End Function
Function seek_avi(alias, pos)
If pos > length_avi(alias) Then Return 1
winmm_mciExecute("seek " + alias + " to " + pos)
End Function
Function play_avi(alias)
winmm_mciExecute("window " + alias + " state show")
winmm_mciExecute("play " + alias)
End Function
Function stop_avi(alias)
winmm_mciExecute("stop " + alias)
End Function
Function pause_avi(alias)
winmm_mciExecute("pause " + alias)
End Function
[edit]Oops, slight tweakage. What was I on when I wrote this?[/edit]
YAN
|