Mira esto es lo que uso para hacer mis programas no afecta en nada aver si te ayuda en algo me avisas
Option Explicit
Private Declare Function mciExecute _
Lib "winmm. Dll" ( _
ByVal lpstrCommand As String) As Long
Dim ret As Long, path As String 'Api para reproducir sonidos
Private Sub CargarSonido(Pat As String) ' Pat = ruta del archivo temporal
Dim myArray() As Byte
Dim myFile As Long
myArray = LoadResData(101, "CUSTOM") 'Carga el archivo de recursos
myFile = FreeFile
Open Pat For Binary Access Write As #myFile
Put #myFile, , myArray ' Escribe el archivo temporal
Close #myFile
End Sub
Private Sub Form_Load()
Call CargarSonido("c:\sonido. Mp3") ' Llama a la funcion q crea el archivo temporal
Call mciExecute("Play " & "c:\sonido. Mp3") ' Reproduce el archivo temporal
End Sub
Private Sub Form_Unload(Cancel As Integer)
mciExecute "Close All" 'Detiene la reproduccion
Kill "c:\sonido. Mp3" ' elimina el archivo temporal
End Sub