Visual Basic - MP3 files

Life is soft - evento anual de software empresarial
 
Vista:

MP3 files

Publicado por Ernesto (1 intervención) el 27/03/2009 02:17:20
Hola, bueno, estube haciendo un reproductor de mp3, me funciona perfecto, pero tengo un problema... y es que no puedo reproducir diferentes mp3 a la vez.. y además es algo lento. Me gustaria si alguien tiene algun codigo, o sabe como poder reproducir diferentes mp3 a la vez, que ponga una nota aqui, y le agradecería muchisimo.

Saludos, y 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

RE:MP3 files

Publicado por P3L30N2009 (699 intervenciones) el 27/03/2009 12:31:25
Hola, no sé que reproductor estás utilizando, pero con el WMP no tienes ningún problema, colocas tantos controles como reproducciones quieras hacer al mismo tiempo y ya está.
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

RE:MP3 files

Publicado por Ernesto (1 intervención) el 27/03/2009 14:57:37
si, pero yo estaba buscando un codigo que con un array o algo asi.. pudiera reproducir todo.. el tema es que no se cuantos sonidos puedo llegar a reproducir.. por ejemplo, habrá alguna vez que haya hasta 5 o 6 sonidos a la vez.. en mp3, y no voy a poner 6 controles.. me entiendes?

yo estoy usando un codigo que usa el api de windows.. pero solo puedo reprouducir 1 mp3 a la vez..

gracias por el interes.. saludos!
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

RE:MP3 files

Publicado por Quique (51 intervenciones) el 27/03/2009 18:20:52
Respecto a esto:

"por ejemplo, habrá alguna vez que haya hasta 5 o 6 sonidos a la vez.. en mp3, y no voy a poner 6 controles.. me entiendes? "

pues no es necesario que pongas 6 controles, porque dimensionando uno solo puedes cargar (o crear) EN TIEMPO DE EJECUCIÓN tantos como necesites. ¿Sí sabes cómo dimensionarlos o hacer una "matriz de controles"?
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

RE:MP3 files

Publicado por P3L30N2009 (699 intervenciones) el 27/03/2009 20:16:11
Y qué api estás usando?

Prque que yo sepa con la API mciSendString se pueden reproducir al mismo tiempo todos los mp3 que quieras.

Solo tienes que repetir el comando "Play" tantas veces como reproducciones.
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

RE:MP3 files

Publicado por Ernesto (2 intervenciones) el 27/03/2009 20:47:28
ah si? me podrias poner algun link o alguna parte donde pueda ver un ejemplo de la api API mciSendString (que reproduzca varios mp3) y adaptarlo a mi codigo? ^^

Gracias por todo, saludos!
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

RE:MP3 files EJEMPLO!

Publicado por P3L30N2009 (699 intervenciones) el 28/03/2009 09:26:03
Aquí tienes el ejemplo, lo de adaptarlo a tu código es cosa tuya.

Suponemos que tienes un array a nivel de módulo con los mp3 que quieres reproducir al mismo tiempo (ruta completa y nombre del archivo con extensión). El array se llama MiArray (original, eh?)
Y por supuesto, damos por hecho que la API mciSendString está declarada.

En el evento Load o Click de cualquier control:

Dim i As Integer, lRet As Long
For i = 0 To UBound(MiArray)
lRet = mciSendString("OPEN " & Chr(34) & MiArray(i) & Chr(34), 0&, 0, 0)
lRet = mciSendString("PLAY " & Chr(34) & MiArray(i) & Chr(34) & " FROM 0", 0&, 0, 0)
Next i

Ah! y en el evento Unload no te olvides de poner lo mismo, pero con los comandos STOP y CLOSE, sino te va a seguir sonando aunque cierres el programa.
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

RE:MP3 files EJEMPLO!

Publicado por Ernesto (2 intervenciones) el 28/03/2009 13:42:33
Eso era lo que buscaba!! ^^

muchas gracias peleón!! gracias por todo!! Tienes msn..? lo decia por si querias que hablasemos.. si no quieres no importa ;)
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

RE:MP3 files EJEMPLO!

Publicado por Ernesto (1 intervención) el 29/03/2009 17:04:32
Probé lo que me dijiste.. y me salió esto:

Private Function LoadMP3(ByVal FileName As String, ByVal looping As LoopStyle) As Long

If Not FileExist(App.Path & "MP3" & FileName, vbArchive) Then Debug.Print "El archivo:"; FileName & " no existe.": Exit Function

If LastMP3 = 0 Then
LastMP3 = 1
Else
LastMP3 = LastMP3 + 1
End If

ReDim Preserve DSBuffers(0 To LastMP3) As SoundBuffer

Dim i As Integer

For i = 1 To UBound(DSBuffers)
With DSBuffers(i)
If .FileName = vbNullString Then
.FileName = FileName
.looping = looping
LoadMP3 = i
Exit For
End If
End With
Next i
End Function
Public Function PlayMP3(ByVal FileName As String, Optional ByVal srcX As Byte = 0, Optional ByVal srcY As Byte = 0, Optional ByVal LoopSound As LoopStyle) As Long
Dim bufferIndex As Integer

'Get the buffer index were wave was loaded
bufferIndex = LoadMP3(FileName, LoopSound)
If bufferIndex <> 0 Then
If DSBuffers(bufferIndex).FileName <> vbNullString Then
DSBuffers(bufferIndex).x = srcX
DSBuffers(bufferIndex).y = srcY

FileName = Trim(Left$(String$(165, 0), GetShortPathName(App.Path & "MP3" & DSBuffers(bufferIndex).FileName, String$(165, 0), 164)))
Call mciSendString("Open " & FileName & " Alias audio" & CStr(bufferIndex), 0&, 0, 0)
Call mciSendString("play audio" & CStr(bufferIndex), 0&, 0, 0)

If srcX <> 0 And srcY <> 0 Then
' Call Update3DSound(bufferIndex, 0, 0)
End If

'Esto deberia ser cuando termina el mp3 de sonar..
LastMP3 = LastMP3 - 1
ReDim Preserve DSBuffers(0 To LastMP3) As SoundBuffer
End If
End If
End Function

y no me funciona.. si te fijas esta parte:
'Esto deberia ser cuando termina el mp3 de sonar..
LastMP3 = LastMP3 - 1
ReDim Preserve DSBuffers(0 To LastMP3) As SoundBuffer

vuelvo a redimensionar el array.. pero eso está mal..

alguna solución?
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

RE:MP3 files EJEMPLO!

Publicado por P3L30N2009 (699 intervenciones) el 30/03/2009 10:32:30
Me parece que te estás liando con funciones innecesarias que realmente no sabes lo que hacen.

¿De verdad probaste el código (sencillo) que te puse antes?. Porque no tiene nada que ver con lo que te salió.

Si quieres lo puedes poner en un procedimiento pasándole como parámetro el array.
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