MP3 Help Request

Just starting out? Need help? Post your questions and find answers here.
Bong-Mong
User
User
Posts: 35
Joined: Sat Jan 03, 2004 6:53 pm

MP3 Help Request

Post by Bong-Mong »

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.

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
Thanks
1.3AMD, 2x 256 sdr, 32 AGP