veja estas orientações :
Ou tente esta classe :
A classe tinha um projeto exemplo,
estou postando ele depois de dar uma melhorada s
ubstancial, acho que vai esclarecer suas dúvidas.
Crie um form com:
1 Listbox
2 Labels
4 CommandButtons
2 Timers
E cole o código abaixo:
Dim CDA As New cCDAudio
Dim LoadedFlag As Boolean
Private Sub Command1_Click()
' Checa se pode tocar
If LoadedFlag = False Then
MsgBox "Não há CD de Audio", vbCritical, App.Title
Exit Sub
End If
' Se não houver itens escolhidos toque o primeiro senão toque o escolhido
If List1.ListIndex = -1 Then
CDA.StartPlay
List1.ListIndex = 0
Else
CDA.SeekCDtoX List1.ItemData(List1.ListIndex)
End If
Timer2.Enabled = True
End Sub
Private Sub Command2_Click()
' Stop
CDA.StopPlay
Timer2.Enabled = False
Label1 = ""
End Sub
Private Sub Command3_Click()
' retrocede de 10 em 10 segundos
CDA.ReWind 10000
End Sub
Private Sub Command4_Click()
' Avança de de 10 em 10 segundos
CDA.FastForward 10000
End Sub
Private Sub Form_Load()
' Para começar bem
CDA.ReadyDevice
Command1.Caption = "Play"
Command2.Caption = "Stop"
Command3.Caption = "<<"
Command4.Caption = ">>"
Timer1.Interval = 1000
Timer2.Interval = 1000
Timer2.Enabled = False
Label1 = ""
Label1.AutoSize = True
Label2 = ""
End Sub
Sub CarregaFaixas()
Dim N As Integer, I As Integer
' O nome ja diz
N = CDA.GetNumTracks
List1.Clear
For I = 1 To N
List1.AddItem "Faixa " & I
List1.ItemData(List1.NewIndex) = I
Next
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
' Para não deixar o cd tocando
CDA.StopPlay
CDA.UnloadAll
End Sub
Private Sub Timer1_Timer()
' Controla se há um cd pronto no drive ou não
If CDA.CheckCD = True Then
If LoadedFlag = False Then
CarregaFaixas
LoadedFlag = True
Command1.Enabled = True
Label2 = CDA.GetCDLength
End If
Else
LoadedFlag = False
List1.Clear
Label2 = ""
Command1.Enabled = False
End If
End Sub
Private Sub Timer2_Timer()
' Controla o display da faixa
Dim T As Integer, M As Integer, S As Integer
CDA.GetCDPosition T, M, S
Label1 = "Tocando Faixa " & T & " - " & Format(M, "00") & ":" & Format(S, "00") & " de " & Left(CDA.GetTrackLength(T), 5)
End Sub