Access - Reproducir archivos mp3 secuencialmente en vba access

 
Vista:
sin imagen de perfil

Reproducir archivos mp3 secuencialmente en vba access

Publicado por Jesus (1 intervención) el 22/11/2022 20:09:41
Tengo una base de datos donde he catalogado todos mis álbumes de música y así poder localizar una canción y reproducirla o un álbum completo. Ahora llevo tiempo queriendo generar listas de reproducción donde incluir canciones sueltas o álbumes completos, todo junto.
Para ello he creado una tabla donde guardo el nombre que le doy a la lista y tantos registros como canciones tiene la lista. Estos registros contienen la url de cada canción. Luego he puesto este código para recorrer la tabla "Listas_Ficheros" e ir reproduciendo cada una de las canciones incluidas en ella.

Private Sub ReproLista_Click()
Dim dbs As Database
Dim rst As Recordset
Dim busca As String

RutaLista = RutaCarpeta("Listas") & Me.ReproLista & "\"

busca = "SELECT Listas_Ficheros.Direccion_Fichero "
busca = busca & "FROM Listas_Ficheros "
busca = busca & "WHERE Listas_Ficheros.Nombre_Lista like '" & Forms![Buscar_Musica]!ReproLista & "';"
Set dbs = CurrentDb
Set rst = CurrentDb.OpenRecordset(busca)
rst.MoveFirst
Do Until rst.EOF
' MsgBox "" & rst!Direccion_Fichero
' Shell "C:\Program Files\VideoLAN\VLC\vlc.exe " & rst!Direccion_Fichero
Shell "C:\Program Files\Windows Media Player\wmplayer.exe """ & rst!Direccion_Fichero & """"

rst.MoveNext
Loop
End Sub

El problema es que si que las va reproduciendo, pero no espera a que termine una canción para empezar a reproducir la siguiente.
Como veis, tengo comentada una línea en la que utilizo el VLC en vez windows media, pero tampoco me funciona.¿Conocéis alguna forma de decirle que espere hasta que acabe la canción para empezar con la siguiente?
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reproducir archivos mp3 secuencialmente en vba access

Publicado por SUPERJRCH (3 intervenciones) el 14/05/2024 23:44:41
Hola puedes usar un procedimiento de Sleep

en un modulo escribe lo siguiente

Public Function Sleep(ByVal NumSegundos As Single)
On Error Resume Next
Dim started As Single
started = Timer
Do
DoEvents
Loop Until Timer - started >= NumSegundos
End Function

luego entre reproducción y reproducción llama a la función y le asignas la cantidad de segundos que requieres de pausa

en esta parte de tu codigo

rst.MoveNext

Call Sleep (3) ''''''''''''''''''''acá le estás dando una pausa de 3 segundos entre pista y pista
Loop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar