CD SetTrackState() //edit frage zu MCI

Anfängerfragen zum Programmieren mit PureBasic.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

worauf jetzt antworten?
auf die eigentliche Frage dieses Threads???
wenn ja: heißt das , das es keinen befehl gibt, um einen CD track an einer bestimmten stelle anzufangen, oder kennt ihn nur keiner??
wenn nein: worauf dann die antwort?
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Hab da vielleicht was:

Du kannst auch direkt über MCI arbeiten
(hab ich jetzt in meinem neuen MoviePlayer so gemacht ... )

ungefähr so....

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 
Ich weiß das sind wirklich viele Prozeduren ( :oops: ) aber vielleicht findest du ja etwas...
PS:
Mit MCI lässt sich so ziemlich alles abspielen...
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

stimmt sind viele proceduren..
das PB - CD - Audio system kann man so direkt weglassen^^danke.. ich werd schon was finden, was ich gebrauchen kann
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

wofür steht die variable nb???
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Wie bei den PB-Libs eben für die ID
Bild
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

kann ich dann sozusagen 0 dareinschreiben?
und bei 2 dateien dann eine mit 0 udn eine 1??
ich habe es so gemacht, und bei mir kam bei load_movie immer result = 0


//edit : bezogen auf

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 
Zuletzt geändert von a14xerus am 21.07.2006 11:50, insgesamt 1-mal geändert.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

grudnsätzlich soltset du fnord die kereckte ID ermittlen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag von a14xerus »

und wie mache ich das?
Jilocasin
Beiträge: 665
Registriert: 13.05.2006 16:04
Kontaktdaten:

Beitrag von Jilocasin »

Hmm probier mal...

Code: Alles auswählen

Procedure Movie_Load(Nb,file.s)
  If mciSendString_("open "+Chr(34)+file+Chr(34)+" type MPEGVIDEO alias MYMOVIE"+Str(Nb),0,0,0)
    Result = 0
  Else
    Result = 1
  EndIf
  ProcedureReturn Result
EndProcedure 
...mit vollständigem Dateipfad
Bild
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

[OT]
Kaeru Gaman hat geschrieben:grudnsätzlich soltset du fnord die kereckte ID ermittlen...
Was ist bitte ein fnord?!

Ist a14xerus ein dahingestellter, aber unantasbarer Beweis für irgendwas, um bei uns eine art Mindfuck auszulösen?
[/OT]
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Antworten