hola para reproducir musica ya sea mp3,mid,etc...usa lo siguiente:
imaginate que en C: tienes un archivo de musica que se llama "musica.mp3"
agrega un modulo que contenga lo siguiente:
Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
en un command1 para reproducir lo siguiente(importante dejar el espacio despues de play):
Private Sub Command1_Click()
resultado = mciExecute("play C:musica.mp3")
End Sub
para que cuando el usuario pulse la x de cerrar el formulario ,y si esta sonando la musica en ese momento, esta se pare, se pone en el evento form unload un "close all" ejemplo:
Private Sub Form_Unload(Cancel As Integer)
mciExecute "Close All"
End Sub
si quieres un boton de pause o otro de stop solo tienes que cambiar el play por pause o stop.
EJEMPLO DE CODIGO PLAY STOP Y PAUSE:
en un modulo:
Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
en un form:
Private Sub Command1_Click()
resultado = mciExecute("play C:musica.mp3")
End Sub
Private Sub Command2_Click()
resultado = mciExecute("stop C:musica.mp3")
End Sub
Private Sub Command3_Click()
resultado = mciExecute("pause C:musica.mp3")
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciExecute "Close All"
End Sub
--------------------------------------------------------------------------------------------------------
este ejemplo es para lo que tu dices cuando el archivo de musica es fijo en una ruta,para cuando lo tiene que elejir el usuario mediante una variable o mediante un cuadro de dialogo cambia un poco.
salu2 espero te sirva.