MP3 Commandes MCI

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

MP3 Commandes MCI

Message par Zorro »

je remet ce code ici, puisqu'il avait disparu

Code : Tout sélectionner

; German forum: http://robsite.de/php/pureboard/viewtopic.php?t=2786&highlight=
; Author: GPI
; Date: 09. November 2003

;Info: MCI-MP3-Commands
Enumeration 0
		#MP3_Unknown
		#MP3_Stopped
		#MP3_Playing
		#MP3_Paused
EndEnumeration

;Example

Enumeration 1
		#gadget_File
		#Gadget_VolumeTxt
		#Gadget_Volume
		#Gadget_SpeedTxt
		#Gadget_Speed
		#Gadget_PositionTxt
		#Gadget_Position
		#Gadget_Load
		#Gadget_Play
		#Gadget_Stop
		#Gadget_Pause
		#Gadget_Resume
EndEnumeration
Declare  mp3_getstatus(nb)
Declare  mp3_load(nb,file.s)
Declare  mp3_play(nb)
Declare  mp3_playstart(nb)
Declare  mp3_playpart(nb,start,endpos)
Declare  mp3_pause(nb)
Declare  mp3_resume(nb)
Declare  mp3_stop(nb)
Declare  mp3_free2(nb)
Declare  mp3_setvolume(nb,volume)
Declare  mp3_getvolume(nb)
Declare  mp3_setspeed(nb,tempo)
Declare  mp3_getspeed(nb)
Declare  mp3_getlength(nb)
Declare  mp3_getposition(nb)
Declare  mp3_seek(nb,pos)
Declare.s mp3_timestring(time)
Declare  setvol(x)
Declare  setspeed(x)
Declare  setposition(x,max)



If OpenWindow(0, 100, 200, 310,310 , "Simple MP3-Player",#PB_Window_SystemMenu |#PB_Window_ScreenCentered)
		;If CreateGadgetList(WindowID(0))
		top=5
		TextGadget    (#gadget_File       ,5,top,300,20,"File:"):top+25
		TextGadget    (#Gadget_VolumeTxt,  5,top,300,20,"Volume"):top+20
		TrackBarGadget(#Gadget_Volume     ,5,top,300,25,0,100):top+30
		TextGadget    (#Gadget_SpeedTxt   ,5,top,300,20,"Speed"):top+20
		TrackBarGadget(#Gadget_Speed      ,5,top,300,25,0,200):top+30
		TextGadget    (#Gadget_PositionTxt,5,top,300,20,"Position"):top+20
		TrackBarGadget(#Gadget_Position   ,5,top,300,25,0,1000):top+30
		ButtonGadget  (#Gadget_Load       ,5,top,300,20,"Load"):top+25
		ButtonGadget  (#Gadget_Play       ,5,top,300,20,"Play"):top+25
		ButtonGadget  (#Gadget_Pause      ,5,top,300,20,"Pause"):top+25
		ButtonGadget  (#Gadget_Resume     ,5,top,300,20,"Resume"):top+25
		ButtonGadget  (#Gadget_Stop       ,5,top,300,20,"Stop"):top+25
		loaded=#False
		Quit=#False

		Repeat
				EventID.l = WindowEvent()

				Select EventID
				Case 0
						If loaded And max>0
								x=MP3_GetPosition(1)
								If GetGadgetState(#Gadget_Position)<>x*1000/max
										SetPosition(x,max)
								EndIf
						EndIf
						Delay(100)
				Case #PB_Event_CloseWindow ; If the user has pressed on the close button
						Quit=#True
				Case #PB_Event_Gadget
						Select EventGadget()
						Case #Gadget_Load
								File$=OpenFileRequester("","","Media (Wave,MP3,OGG)|*.wav;*.ogg;*.mp3|Wave|*.wav|mp3|*.mp3|OGG|*.OGG|ALL|*.*",0)
								If File$<>""
										If loaded
												mp3_Free2(1)
												loaded=#False
										EndIf
										If MP3_Load(1,File$)
												max=MP3_GetLength(1)
												SetVol(MP3_GetVolume(1)/10)
												SetSpeed(MP3_GetSpeed(1)/10)
												SetPosition(0,max)
												loaded=#True
												SetGadgetText(#gadget_File,"File:"+File$)
										Else
												SetGadgetText(#gadget_File,"File")
										EndIf
								EndIf
						Case #Gadget_Resume
								If loaded
										MP3_Resume(1)
								EndIf
						Case #Gadget_Pause
								If loaded
										MP3_Pause(1)
								EndIf
						Case #Gadget_Play
								If loaded
										MP3_Play(1)
								EndIf
						Case #Gadget_Stop
								If loaded
										MP3_Stop(1)
								EndIf
						Case #Gadget_Position
								If loaded And max>0
										x=GetGadgetState(#Gadget_Position)*max/1000
										SetPosition(x,max)
										MP3_Seek(1,x)
										MP3_Resume(1)
								EndIf
						Case #Gadget_Volume
								If loaded
										x=GetGadgetState(#Gadget_Volume)
										SetVol(x)
										MP3_SetVolume(1,x*10)
								EndIf
						Case #Gadget_Speed
								If loaded
										x=GetGadgetState(#Gadget_Speed)
										SetSpeed(x)
										MP3_SetSpeed(1,x*10)
								EndIf
						EndSelect
				EndSelect

		Until Quit
		If loaded
				MP3_Stop(1)
				mp3_Free2(1)
		EndIf
EndIf
;EndIf

End
;- Procedures Zone
Procedure MP3_GetStatus(Nb)
		Result=#MP3_Unknown
		a$=Space(#MAX_PATH)
		i=mciSendString_("status MP3_"+Str(Nb)+" mode",@a$,#MAX_PATH,0)
		If i=0
				Debug a$
				Select a$
				Case "stopped":Result=#MP3_Stopped
				Case "playing":Result=#MP3_Playing
				Case "paused":Result=#MP3_Paused
				EndSelect
		EndIf
		ProcedureReturn Result
EndProcedure
Procedure MP3_Load(Nb,file.s)
		;i=mciSendString_("open Sequencer!"+Chr(34)+file+Chr(34)+" alias mid"+Str(Nb),0,0,0)
		i=mciSendString_("OPEN "+Chr(34)+file+Chr(34)+" Type MPEGVIDEO ALIAS MP3_"+Str(Nb),0,0,0)
		If i=0
				ProcedureReturn #True
		Else
				ProcedureReturn #False
		EndIf
EndProcedure
Procedure MP3_Play(Nb)
		i=mciSendString_("play MP3_"+Str(Nb),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_PlayStart(Nb)
		i=mciSendString_("play MP3_"+Str(Nb)+" from "+Str(0),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_PlayPart(Nb,Start,endPos)
		i=mciSendString_("play MP3_"+Str(Nb)+" from "+Str(Start)+" to "+Str(endPos),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_Pause(Nb)
		i=mciSendString_("pause MP3_"+Str(Nb),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_Resume(Nb)
		i=mciSendString_("resume MP3_"+Str(Nb),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_Stop(Nb)
		i=mciSendString_("stop MP3_"+Str(Nb),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure mp3_Free2(Nb)
		i=mciSendString_("close MP3_"+Str(Nb),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_SetVolume(Nb,volume)
		i=mciSendString_("SetAudio MP3_"+Str(Nb)+" volume to "+Str(volume),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_GetVolume(Nb)
		a$=Space(#MAX_PATH)
		i=mciSendString_("status MP3_"+Str(Nb)+" volume",@a$,#MAX_PATH,0)
		ProcedureReturn Val(a$)
EndProcedure


Procedure MP3_SetSpeed(Nb,Tempo)
		i=mciSendString_("set MP3_"+Str(Nb)+" Speed "+Str(Tempo),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure MP3_GetSpeed(Nb)
		a$=Space(#MAX_PATH)
		i=mciSendString_("status MP3_"+Str(Nb)+" Speed",@a$,#MAX_PATH,0)
		ProcedureReturn Val(a$)
EndProcedure
Procedure MP3_GetLength(Nb)
		a$=Space(#MAX_PATH)
		i=mciSendString_("status MP3_"+Str(Nb)+" length",@a$,#MAX_PATH,0)
		ProcedureReturn Val(a$)
EndProcedure
Procedure MP3_GetPosition(Nb)
		a$=Space(#MAX_PATH)
		i=mciSendString_("status MP3_"+Str(Nb)+" position",@a$,#MAX_PATH,0)
		ProcedureReturn Val(a$)
EndProcedure
Procedure MP3_Seek(Nb,pos)
		i=mciSendString_("Seek MP3_"+Str(Nb)+" to "+Str(pos),0,0,0)
		ProcedureReturn i
EndProcedure
Procedure.s MP3_TimeString(time)
		time/1000
		sek=time%60:time/60
		min=time%60:time/60
		ProcedureReturn RSet(Str(time),2,"0")+":"+RSet(Str(min),2,"0")+":"+RSet(Str(sek),2,"0")
EndProcedure
Procedure SetVol(x)
		SetGadgetText(#Gadget_VolumeTxt,"Volume:"+Str(x))
		SetGadgetState(#Gadget_Volume,x)
EndProcedure
Procedure SetSpeed(x)
		SetGadgetText(#Gadget_SpeedTxt,"Speed:"+Str(x))
		SetGadgetState(#Gadget_Speed,x)
EndProcedure
Procedure SetPosition(x,max)
		SetGadgetText(#Gadget_PositionTxt,"Position:"+MP3_TimeString(x)+" : "+MP3_TimeString(max))
		If max>0
				SetGadgetState(#Gadget_Position,x*1000/max)
		Else
				SetGadgetState(#Gadget_Position,0)
		EndIf
EndProcedure





; Epb

Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"