Reproducción música

Tengo una base de datos que al darle a un botón de comando reproduce una camción que tengo en un directorio, y quiero que al darle al botón, me reproduzca todas las que le ponga en el procedimiento de evento. Lo tengo así,
Private Sub Comando100_Click()
On Error GoTo Err_Repro
Reproduce ("Amor.mp3")
Reproduce ("Amaral.mp3")
Reproduce ("carey.mp3")
Err_Repro:
Exit Sub
End Sub
Pero solamente me reproduce la última de las tres y yo quiero que empiece por la primera y siga continuamente con las demás.
Respuesta
2
Tienes que controlar el procedimiento reproduce hasta que termine con la canción, con una variable a=0 y cuando acabe la canción le cambias el valor en este procedimiento, luego pones un bucle hasta que a<>0 y pasas a la siguiente canción:
a=0
reproduce("a.mp3")
Do
loop while a=0
a=0
reproduce("b.mp3")
Etc.
Hola soy nuevo enesto, por lo tanto te agradecería que me pusieras el procedimiento de evento completo.
Dim a as integer
Private Sub Comando100_Click()
On Error GoTo Err_Repro
a=0
reproduce("a.mp3")
do
loop while a=0
a=0
reproduce("b.mp3")
Err_Repro:
Exit Sub
End Sub
Private sub Reproduce(cancion as string)
...sentencias de tu procedimiento
...cuando termina la cancion
a=1
End sub
Vamos a ver como te lo digo para que me entiendas, no tengo ni idea donde poner la segunda parte de lo que me explicas, por lo que si no te quieres molestar mucho me lo dices y termino la pregunta y si quieres pues me lo explicas en un ejemplo donde tengo que poner cada cosa.
Muchas gracias
Cuando preguntaste por primera vez, dijiste que tenias un procedimiento que te reproducía solo la ultima canción, con lo que daba por hecho que este procedimiento se llama Reproduce y ya lo tienes escrito en algún sitio (un módulo, el propio formulario). Si no es así mandame todo el código que tengas.
Y por favor no seas tan borde cuando preguntes.
Ok, perdona, te explico:
Tengo el modulo que se llama sonido con lo siguiente:
Public Temp As Long
Public Musica_inicio
Public RutaMusica As String
Declare Function mciSendString Lib "winmm" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Function Reproduce(Fichero As String)
On Error GoTo Err_Comando9_Click
RutaMusica = CurrentProject.Path
Temp = mciSendString("close " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Musica_inicio = Fichero
Temp = mciSendString("open " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Temp = mciSendString("play " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Exit_Comando9_Click:
Exit Function
Err_Comando9_Click:
' Aviso de error de Sonidos
MsgBox "Aviso Nº " & Err.Number & " desde el programa Taller Mecánico 2000" & Chr(13) _
& Err.Description, vbCritical + vbOKOnly, "Programa Taller Mecánico 2000"
Resume Exit_Comando9_Click
End Function
y despues en el private sub del comando tengo esto:
reproduce ("amaral.mp3)
Y lo que quiero es poner seguido de esa canción más canciones que las reproduzca seguidas, una detrás de la otra.
Gracias y un saludo
No me ha servido de nada, aunque de todas formas gracias por tu esfuerzo
Me ha costado pero ya tengo la solución, la función Reproduce del modulo quedara así:
Function Reproduce(Fichero As String)
On Error GoTo Err_Comando9_Click
RutaMusica = CurrentProject.Path
Temp = mciSendString("close " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Musica_inicio = Fichero
Temp = mciSendString("open " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Temp = mciSendString("play " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34), 0&, 0, 0)
Do
Temp = mciSendString("status " & Chr(34) & RutaMusica & "\" & Musica_inicio & Chr(34) & " mode", a, 8, 0)
Loop While (Left(a, 7) = "playing")
Exit_Comando9_Click:
Exit Function
Err_Comando9_Click:
' Aviso de error de Sonidos
MsgBox "Aviso Nº " & Err.Number & " desde el programa Taller Mecánico 2000" & Chr(13) _
& Err.Description, vbCritical + vbOKOnly, "Programa Taller Mecánico 2000"
Resume Exit_Comando9_Click
End Function
Lo demas queda todo igual menos en el modulo que declaras una nueva variable:
Public a As String * 8

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas