(hab ich jetzt in meinem neuen MoviePlayer so gemacht ... )
Code: Alles auswählen
Procedure Movie_Load(Nb,file.s)
If CurrentExtension = "cda"
done = mciSendString_("open "+Chr(34)+file+Chr(34)+" type CDAUDIO alias MYMOVIE"+Str(Nb),0,0,0)
Else ; -> mit Parent-Funktion
done = mciSendString_("open "+Chr(34)+file+Chr(34)+" type MPEGVIDEO style child parent "+Str(hWnd)+" alias MYMOVIE"+Str(Nb),0,0,0)
EndIf
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Stop(Nb)
done = mciSendString_("stop MYMOVIE"+Str(Nb),0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Play(Nb)
done = mciSendString_("play MYMOVIE"+Str(Nb),0,0,0)
If done = 0
Result = 1
MOVIE_STOPPED = 0
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Pause(Nb)
done = mciSendString_("pause MYMOVIE"+Str(Nb),0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Resume(Nb)
done = mciSendString_("resume MYMOVIE"+Str(Nb),0,0,0)
If done = 0
Result = 1
MOVIE_STOPPED = 0
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Free(Nb)
done = mciSendString_("close MYMOVIE"+Str(Nb),0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_SetVolume(Nb,volume)
done = mciSendString_("setaudio MYMOVIE"+Str(Nb)+" volume to "+Str(volume),0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetVolume(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" volume",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_SetSpeed(Nb,Tempo)
done = mciSendString_("set MYMOVIE"+Str(Nb)+" speed "+Str(Tempo),0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetSpeed(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" speed",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_GetLength(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" length",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_GetPosition(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" position",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure.s Movie_GetTimeFormat(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" time format",@a$,#MAX_PATH,0)
ProcedureReturn a$
EndProcedure
Procedure Movie_SetTimeFormat(Nb,format.s)
done = mciSendString_("set MYMOVIE"+Str(Nb)+" "+format,0,0,0)
If done = 0
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_IsPlaying(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="playing"
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_IsPaused(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="paused"
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_IsStopped(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="stopped" Or a$ = ""
Result = 1
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_IsReady(Nb) ; Dud noch net so...
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
If a$="not ready" Or a$ = ""
Result = 0
Else
Result = 1
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetSourceWidth(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("where MYMOVIE"+Str(Nb)+" source",@a$,#MAX_PATH,0)
If done = 0 ; (...Also hat's geklappt)
; Die Leerzeichen im String ermitteln...
pos1 = FindString(a$," ",1)
pos2 = FindString(a$," ",pos1+1)
pos3 = FindString(a$," ",pos2+1)
a$ = Mid(a$,pos2+1,pos3-pos2-1)
Result = Val(a$)
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetSourceHeight(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("where MYMOVIE"+Str(Nb)+" source",@a$,#MAX_PATH,0)
If done = 0 ; (...Also hat's geklappt)
; Die Leerzeichen im String ermitteln...
pos1 = FindString(a$," ",1)
pos2 = FindString(a$," ",pos1+1)
pos3 = FindString(a$," ",pos2+1)
a$ = Mid(a$,pos3+1,50)
Result = Val(a$)
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetWidth(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("where MYMOVIE"+Str(Nb)+" destination",@a$,#MAX_PATH,0)
If done = 0 ; (...Also hat's geklappt)
; Die Leerzeichen im String ermitteln...
pos1 = FindString(a$," ",1)
pos2 = FindString(a$," ",pos1+1)
pos3 = FindString(a$," ",pos2+1)
a$ = Mid(a$,pos2+1,pos3-pos2-1)
Result = Val(a$)
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_GetHeight(Nb)
a$=Space(#MAX_PATH)
done = mciSendString_("where MYMOVIE"+Str(Nb)+" destination",@a$,#MAX_PATH,0)
If done = 0 ; (...Also hat's geklappt)
; Die Leerzeichen im String ermitteln...
pos1 = FindString(a$," ",1)
pos2 = FindString(a$," ",pos1+1)
pos3 = FindString(a$," ",pos2+1)
a$ = Mid(a$,pos3+1,50)
Result = Val(a$)
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_Resize(Nb,x,y,b,h)
done = mciSendString_("put MYMOVIE"+Str(0)+" window at "+Str(x)+" "+Str(y)+" "+Str(b)+" "+Str(h),0,0,0)
If done
Result = 0
Else
Result = 1
EndIf
ProcedureReturn Result
EndProcedure
Procedure Movie_CDTracks(Nb)
a$=Space(#MAX_PATH)
Result = mciSendString_("status MYMOVIE"+Str(Nb)+" number of tracks",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_CDCurrentTrack(Nb)
a$=Space(#MAX_PATH)
Result = mciSendString_("status MYMOVIE"+Str(Nb)+" current track",@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_CDTrackLength(Nb,track)
a$=Space(#MAX_PATH)
Result = mciSendString_("status MYMOVIE"+Str(Nb)+" length track "+Str(track),@a$,#MAX_PATH,0)
ProcedureReturn Val(a$) ; für Millisekunden-Berechnung
EndProcedure
Procedure Movie_CDGetPosition(Nb,track)
a$=Space(#MAX_PATH)
done = mciSendString_("status MYMOVIE"+Str(Nb)+" position track "+Str(track),@a$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure Movie_Seek(Nb,pos)
If Movie_IsPlaying(Nb)
play_again = 1
Movie_Stop(Nb)
EndIf
mciSendString_("play MYMOVIE"+Str(Nb)+" from "+Str(pos),0,0,0)
If done = 0
Result = 1
MOVIE_STOPPED = 0
Else
Result = 0
EndIf
ProcedureReturn Result
EndProcedure
) aber vielleicht findest du ja etwas...
Mit MCI lässt sich so ziemlich alles abspielen...