MP3 Help Request
Posted: Mon Jan 19, 2004 12:11 pm
MCI commands from forum.
I can play from each player, but i can not play from each player at the same time, can anyone help.
Thanks
I can play from each player, but i can not play from each player at the same time, can anyone help.
Code: Select all
;- Window Constants
Enumeration
#Window_0
EndEnumeration
Enumeration
#MP3_Unknown
#MP3_Stopped
#MP3_Playing
#MP3_Paused
EndEnumeration
Enumeration
#MP3_UnknownA
#MP3_StoppedA
#MP3_PlayingA
#MP3_PausedA
EndEnumeration
Enumeration
#Frame3D_Left
#Frame3D_Right
#Button_LoadLeft
#Button_PlayLeft
#Button_PauseLeft
#Button_StopLeft
#Button_StopRight
#Button_PauseRight
#Button_PlayRight
#Button_LoadRight
#TrackBar_Fader
#TrackBar_VolumeLeft
#TrackBar_SpeedLeft
#TrackBar_VolumeRight
#TrackBar_SpeedRight
#Gadget_PositionLeft
#Gadget_PositionRight
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
EndEnumeration
Enumeration
#StatusBar_0
EndEnumeration
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_GetStatusA(NbA)
Result=#MP3_UnknownA
aA$=Space(#MAX_PATH)
iA=mciSendString_("status MP3_"+Str(NbA)+" mode",@aA$,#MAX_PATH,0)
If iA=0
Debug aA$
Select aA$
Case "stopped":Result=#MP3_StoppedA
Case "playing":Result=#MP3_PlayingA
Case "paused":Result=#MP3_PausedA
EndSelect
EndIf
ProcedureReturn Result
EndProcedure
Procedure MP3_Load(Nb,file.s)
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_LoadA(NbA,fileA.s)
iA=mciSendString_("OPEN "+Chr(34)+fileA+Chr(34)+" Type MPEGVIDEO ALIAS MP3_"+Str(NbA),0,0,0)
If iA=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_Free(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_PlayA(NbA)
iA=mciSendString_("play MP3_"+Str(NbA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_PlayStartA(NbA)
iA=mciSendString_("play MP3_"+Str(NbA)+" from "+Str(0),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_PlayPartA(NbA,StartA,endPosA)
iA=mciSendString_("play MP3_"+Str(NbA)+" from "+Str(StartA)+" to "+Str(endPosA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_PauseA(NbA)
iA=mciSendString_("pause MP3_"+Str(NbA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_ResumeA(NbA)
iA=mciSendString_("resume MP3_"+Str(NbA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_StopA(NbA)
iA=mciSendString_("stop MP3_"+Str(NbA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_FreeA(NbA)
iA=mciSendString_("close MP3_"+Str(NbA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_SetVolumeA(NbA,volumeA)
iA=mciSendString_("SetAudio MP3_"+Str(NbA)+" volume to "+Str(volumeA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_GetVolumeA(NbA)
aA$=Space(#MAX_PATH)
iA=mciSendString_("status MP3_"+Str(NbA)+" volume",@aA$,#MAX_PATH,0)
ProcedureReturn Val(aA$)
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 MP3_SetSpeedA(NbA,TempoA)
iA=mciSendString_("set MP3_"+Str(NbA)+" Speed "+Str(TempoA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure MP3_GetSpeedA(NbA)
aA$=Space(#MAX_PATH)
iA=mciSendString_("status MP3_"+Str(NbA)+" Speed",@aA$,#MAX_PATH,0)
ProcedureReturn Val(aA$)
EndProcedure
Procedure MP3_GetLengthA(NbA)
aA$=Space(#MAX_PATH)
iA=mciSendString_("status MP3_"+Str(NbA)+" length",@aA$,#MAX_PATH,0)
ProcedureReturn Val(a$)
EndProcedure
Procedure MP3_GetPositionA(NbA)
aA$=Space(#MAX_PATH)
iA=mciSendString_("status MP3_"+Str(NbA)+" position",@aA$,#MAX_PATH,0)
ProcedureReturn Val(aA$)
EndProcedure
Procedure MP3_SeekA(NbA,posA)
iA=mciSendString_("Seek MP3_"+Str(NbA)+" to "+Str(posA),0,0,0)
ProcedureReturn iA
EndProcedure
Procedure.s MP3_TimeStringA(TimeA)
TimeA/1000
sekA=TimeA%60:TimeA/60
minA=TimeA%60:TimeA/60
ProcedureReturn RSet(Str(TimeA),2,"0")+":"+RSet(Str(minA),2,"0")+":"+RSet(Str(sekA),2,"0")
EndProcedure
Procedure SetVol(x)
SetGadgetText(#Text_0,"Volume:"+Str(x))
SetGadgetState(#TrackBar_VolumeLeft,x)
EndProcedure
Procedure SetSpeed(x)
SetGadgetText(#Text_1,"Speed:"+Str(x))
SetGadgetState(#TrackBar_SpeedLeft,x)
EndProcedure
Procedure SetPosition(x,max)
SetGadgetText(#Text_2,"Position:"+MP3_TimeString(x)+" : "+MP3_TimeString(max))
If max>0
SetGadgetState(#Gadget_PositionLeft,x*1000/max)
Else
SetGadgetState(#Gadget_PositionLeft,0)
EndIf
EndProcedure
Procedure SetVolA(xA)
SetGadgetText(#Text_3,"Volume:"+Str(xA))
SetGadgetState(#TrackBar_VolumeRight,x)
EndProcedure
Procedure SetSpeedA(xA)
SetGadgetText(#Text_4,"Speed:"+Str(xA))
SetGadgetState(#TrackBar_SpeedRight,xA)
EndProcedure
Procedure SetPositionA(xA,maxA)
SetGadgetText(#Text_5,"Position:"+MP3_TimeString(xA)+" : "+MP3_TimeString(maxA))
If maxA>0
SetGadgetState(#Gadget_PositionRight,xA*1000/maxA)
Else
SetGadgetState(#Gadget_PositionRight,0)
EndIf
EndProcedure
If OpenWindow(#Window_0, 235, 148, 461, 187, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "BongMong")
If CreateStatusBar(#StatusBar_0, WindowID())
EndIf
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame3D_Left, 10, 10, 190, 50, "", #PB_Frame3D_Single)
Frame3DGadget(#Frame3D_Right, 260, 10, 190, 50, "", #PB_Frame3D_Single)
ButtonGadget(#Button_LoadLeft, 10, 70, 30, 30, "1")
ButtonGadget(#Button_PlayLeft, 40, 70, 30, 30, "2")
ButtonGadget(#Button_PauseLeft, 70, 70, 30, 30, "3")
ButtonGadget(#Button_StopLeft, 100, 70, 30, 30, "4")
ButtonGadget(#Button_StopRight, 420, 70, 30, 30, "4")
ButtonGadget(#Button_PauseRight, 390, 70, 30, 30, "3")
ButtonGadget(#Button_PlayRight, 360, 70, 30, 30, "2")
ButtonGadget(#Button_LoadRight, 330, 70, 30, 30, "1")
TrackBarGadget(#TrackBar_Fader, 140, 70, 180, 30, 0, 10)
TrackBarGadget(#TrackBar_VolumeLeft, 10, 110, 120, 20, 0, 100)
TrackBarGadget(#TrackBar_SpeedLeft, 10, 140, 140, 20, 0, 200)
TrackBarGadget(#TrackBar_VolumeRight, 330, 110, 120, 20, 0, 100)
TrackBarGadget(#TrackBar_SpeedRight, 310, 140, 140, 20, 0, 200)
TrackBarGadget(#Gadget_PositionLeft, 150, 110, 80, 20, 0, 1000)
TrackBarGadget(#Gadget_PositionRight, 160, 130, 80, 20, 0, 1000)
TextGadget(#Text_0, 20, 20, 30, 20, "a")
TextGadget(#Text_1, 70, 20, 30, 20, "b")
TextGadget(#Text_2, 120, 20, 30, 20, "c")
TextGadget(#Text_3, 270, 20, 30, 20, "a")
TextGadget(#Text_4, 310, 20, 30, 20, "b")
TextGadget(#Text_5, 350, 20, 30, 20, "c")
HideGadget(#Gadget_PositionLeft,1)
HideGadget(#Gadget_PositionRight,1)
Quit=#False
Repeat
EventID.l = WindowEvent()
Select EventID
Case 0
If loaded And max>0
x=MP3_GetPosition(1)
If GetGadgetState(#Gadget_PositionLeft)<>x*1000/max
SetPosition(x,max)
EndIf
EndIf
Case 1
If loadedA And maxA>0
xA=MP3_GetPositionA(1)
If GetGadgetState(#Gadget_PositionRight)<>xA*1000/maxA
SetPosition(xA,maxA)
EndIf
EndIf
Delay(100)
Case #PB_Event_CloseWindow
Quit=#True
Case #PB_Event_Gadget
Select EventGadgetID()
Case #Button_LoadLeft
File$=OpenFileRequester("","","Media (Wave,MP3,OGG)|*.wav;*.ogg;*.mp3|Wave|*.wav|mp3|*.mp3|OGG|*.OGG|ALL|*.*",0)
If File$<>""
If loaded
MP3_Free(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
StatusBarText(#StatusBar_0, 0, File$ ,0)
EndIf
EndIf
Case #Button_LoadRight
FileA$=OpenFileRequester("","","Media (Wave,MP3,OGG)|*.wav;*.ogg;*.mp3|Wave|*.wav|mp3|*.mp3|OGG|*.OGG|ALL|*.*",0)
If FileA$<>""
If loadedA
MP3_FreeA(1)
loadedA=#False
EndIf
If MP3_LoadA(1,FileA$)
maxA=MP3_GetLengthA(1)
SetVolA(MP3_GetVolumeA(1)/10)
SetSpeedA(MP3_GetSpeedA(1)/10)
SetPositionA(0,maxA)
loadedA=#True
EndIf
EndIf
Case #Button_PauseLeft
If loaded
MP3_Pause(1)
EndIf
Case #Button_PlayLeft
If loaded
MP3_Play(1)
EndIf
Case #Button_StopLeft
If loaded
MP3_Stop(1)
EndIf
Case #Gadget_PositionLeft
If loaded And max>0
x=GetGadgetState(#Gadget_PositionLeft)*max/1000
SetPosition(x,max)
MP3_Seek(1,x)
MP3_Resume(1)
EndIf
Case #TrackBar_VolumeLeft
If loaded
x=GetGadgetState(#TrackBar_VolumeLeft)
SetVol(x)
MP3_SetVolume(1,x*10)
EndIf
Case #TrackBar_SpeedLeft
If loaded
x=GetGadgetState(#TrackBar_SpeedLeft)
SetSpeed(x)
MP3_SetSpeed(1,x*10)
EndIf
Case #Button_PauseRight
If loadedA
MP3_PauseA(1)
EndIf
Case #Button_PlayRight
If loadedA
MP3_PlayA(1)
EndIf
Case #Button_StopRight
If loadedA
MP3_StopA(1)
EndIf
Case #Gadget_PositionRight
If loadedA And maxA>0
xA=GetGadgetState(#Gadget_PositionRight)*maxA/1000
SetPositionA(xA,maxA)
MP3_SeekA(1,xA)
MP3_ResumeA(1)
EndIf
Case #TrackBar_VolumeRight
If loadedA
xA=GetGadgetState(#TrackBar_VolumeRight)
SetVolA(xA)
MP3_SetVolumeA(1,xA*10)
EndIf
Case #TrackBar_SpeedRight
If loadedA
xA=GetGadgetState(#TrackBar_SpeedRight)
SetSpeedA(xA)
MP3_SetSpeedA(1,xA*10)
EndIf
EndSelect
EndSelect
Until Quit
If loaded
MP3_Stop(1)
MP3_Free(1)
EndIf
If loadedA
MP3_StopA(1)
MP3_FreeA(1)
EndIf
EndIf
EndIf
;Rightplayer = string A's
;1 =load 2 =play 3 =pause 4 =stop/free