Foros del Web » Soporte técnico » Ofimática »

Desde access leer la duración de una canción mp3

Estas en el tema de Desde access leer la duración de una canción mp3 en el foro de Ofimática en Foros del Web. Hola, Tengo una base de datos en access para almacenar mi música. Entre otras cosas almaceno el nombre de los discos y sus canciones. Para ...
  #1 (permalink)  
Antiguo 12/08/2011, 05:10
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Desde access leer la duración de una canción mp3

Hola,

Tengo una base de datos en access para almacenar mi música. Entre otras cosas almaceno el nombre de los discos y sus canciones.
Para que me sea fácil llenar la base de datos, me he hecho un procedimiento en VBA que lee las tags de mis archivos mp3 y así obtengo de forma fácil y rápida el nombre del disco, y el título de cada canción, que luego, con otro procedimiento, paso a sus correspondientes tablas.

Mi problema reside en que no sé como leer la duración de cada canción, pues no es uno de los tags de los archivos.

También me sirve calcular el tiempo si puedo obtener el tamaño del archivo mp3 y el nivel compresión. Todo esto siempre debería obtenerlo a travé de VBA para así automatizar el proceso completo.

Bueno, tras la "chapa" la pregunta parece obvia....

Alguien sabe como obtener la duración, o en su defecto, alguien sabe como obtener el grado de compresión del archivo para así calcular la duración?

Saludos.
  #2 (permalink)  
Antiguo 12/08/2011, 12:33
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Desde access leer la duración de una canción mp3

Hola! Amigo jchuk.
No sé si te servirá la idea pues reconozco que nunca profundicé este tema.

Sin embargo recuerdo que las pocas veces que hice un listado de mis mp3, me basé en los "playlist" que generan WinAmp ó WMP (no me acuerdo cual de los dos).

Dichas playlists son archivos de texto planos fácilmente manipulables.

Saludos, Cacho R.
  #3 (permalink)  
Antiguo 13/08/2011, 03:05
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

Hola mrocf,

Gracias por la sugerencia, pero estoy en las mismas....

He creado un lista en winamp y al abrirla para ver el contenido, veo que no almacena la duración de las canciones.

Por lo que he podido ver en estos días por internet, los reproductores no leen la duración de los temas en los propios archivos sino que la calculan a través del tamaño del archivo y el ratio de compresión (bitrate). Es por eso que me gustaría poder obtener de algún modo ese ratio a través de código, para implementar en mi rutina el cálculo de la duración.

Muchas gracias por la sugerencia de todos modos.

Saludos.
  #4 (permalink)  
Antiguo 13/08/2011, 09:07
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Desde access leer la duración de una canción mp3

¡Me pusiste en la duda!... pero: ¡Si se puede! y te muestro el archivo de texto que acabo de generar:

WINAMP

playlist

------------------------------------------------------------------------
8tracks in playlist, average track length: 3:26
Playlist length: 27minutes 32seconds
Right-click here <file://C:\DOCUME~1\Cacho\CONFIG~1\Temp\WHTC.tmp.html>
to save this HTML file.

Playlist files:

1. Fito Páez - 11 y 6 (3:47)
2. The Beatles - A Hard Day's Night (2:31)
3. Los Trovadores - A la ronda, ronda (2:35)
4. Mercedes Sosa - A mi hermano Miguel (2:31)
5. Danny Martin - A mi manera (4:11)
6. Mercedes Sosa - A que florezca mi pueblo (4:19)
7. Mercedes Sosa - A quién doy (3:57)
8. Eladia Blázquez - A un semejante (3:41)

------------------------------------------------------------------------


Generar lo anterior me llevó de entre 2 a 4 segundos...
Saludos, Cacho R.
  #5 (permalink)  
Antiguo 13/08/2011, 09:31
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

Hola, mrocf,

Nada más lejos de mi intención que ponerte en duda!!! Si nunca fallas!!!

Pero a mi lo que me da es esto

Código:
#EXTM3U
#EXTINF:190,Journey - Lights
\Users\chuk\Music\Journey\1978 Infinity\01 Lights.mp3
#EXTINF:208,Journey - Feeling That Way
\Users\chuk\Music\Journey\1978 Infinity\02 Feeling That Way.mp3
#EXTINF:208,Journey - Anytime
\Users\chuk\Music\Journey\1978 Infinity\03 Anytime.mp3
#EXTINF:181,Journey - La Do Da
\Users\chuk\Music\Journey\1978 Infinity\04 La Do Da.mp3
#EXTINF:200,Journey - Patiently
\Users\chuk\Music\Journey\1978 Infinity\05 Patiently.mp3
#EXTINF:252,Journey - Wheel In The Sky
\Users\chuk\Music\Journey\1978 Infinity\06 Wheel In The Sky.mp3
#EXTINF:206,Journey - Somethin' To Hide
\Users\chuk\Music\Journey\1978 Infinity\07 Somethin' To Hide.mp3
#EXTINF:304,Journey - Winds Of March
\Users\chuk\Music\Journey\1978 Infinity\08 Winds Of March.mp3
#EXTINF:159,Journey - Can Do
\Users\chuk\Music\Journey\1978 Infinity\09 Can Do.mp3
#EXTINF:277,Journey - Opened The Door
\Users\chuk\Music\Journey\1978 Infinity\10 Opened The Door.mp3
Saludos
  #6 (permalink)  
Antiguo 13/08/2011, 11:25
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Desde access leer la duración de una canción mp3

¡Ja ja ja!... ¡Ya entendí!...
Es sencillo: si yo hago una cosa y tú haces otra, ¡nunca nos vamos a poner de acuerdo! (jajajaja)

Trabajemos con lo que tú muestras ya que lo tienes. Mira la línea:

#EXTINF:190,Journey - Lights

¿Sabes que son los "190"?... Son 190 segundos... O sea: 3 min 10 seg es la duración de ese tema.

¿Viste que -tarde o temprano- nos íbamos a entender?
(jajaja)

Te mando un gran saludo, Cacho R.
  #7 (permalink)  
Antiguo 13/08/2011, 11:34
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

mmmmmmm......

Si ya decía yo que nunca fallas...... jajajaj, no me había dado cuenta.

Bueno, pues entonces es una solución, que valoraré si no encuentro otra, ya que no tengo creadas listas de todos mis discos (que son unos 700), de hecho, creo que no tengo creada ni una.

Seguiré intentando obtener el resultado a partir de cada canción/archivo individual, que sería lo más cómodo y directo para mí.
Además, así podria aprovechar la función que ya tengo leyendo las tags sin tener que incluir otra función solo por la duración.

No obstante, muchísimas gracias, es, sin duda, una solución, que aplicaré si no consigo lo que quiero.

Un saludazo amigo.
  #8 (permalink)  
Antiguo 13/08/2011, 14:57
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Desde access leer la duración de una canción mp3

¡Menos mal!... Dos comentarios más:

1º) Si en san Google escribimos: Visual Basic mp3 length, te aparecerán un montón de tonteras (como siempre), y algunos códigos interesantes.
Son interesantes: ¡si!, pero son tan largos y complejos que comenzarás a considerar "con mucho cariño" al método que te he sugerido.

2º) Me quedé enganchado con un comentario tuyo: ¿tienes algo para leer las tags? ¿De qué se trata?

Saludos, Cacho R.
  #9 (permalink)  
Antiguo 13/08/2011, 15:40
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

Hola,

Creo que has debido encontrar los mismo códigos que yo he encontrado desde el domingo que ando conesto...

El que más efectivo me fue lo saqué una página en alemán. El código funcionaba de lujo, pero era extensísimo, usando hasta 4 módulos de clase, y como los comentarios y los nombres de variables y funciones creadas eran alemanes, no me enteraba de nada para adaptarlo, por lo que lo acabé deshechando.

En una página de recursos para VB encontré una explicación sobre como se estructuran las tags en los archivos mp3 , esta, y a partir de ahí y con lo que había leído en esos cientos de páginas que te aparecen a ti, me hice una función en VBA que me lee las tags.

Saludos
  #10 (permalink)  
Antiguo 14/08/2011, 06:18
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Desde access leer la duración de una canción mp3

¡Qué interesante!, ¡Gracias!

Saludos, Cacho R.
  #11 (permalink)  
Antiguo 15/08/2011, 10:37
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

Bueno....
Pues, como casi siempre, las soluciones suelen ser más sencillas de lo esperado. Encontré un ejemplo de lo que buscaba en la página del Buho, donde muchas veces he encontrado códigos interesantísimos, y, no sé porqué, en esta ocasión no se me ocurrió buscar allí.

Gracias y Saludos.
  #12 (permalink)  
Antiguo 15/08/2011, 10:59
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Respuesta: Desde access leer la duración de una canción mp3

Y, en el medio de ese "gigantesco" módulo de clase, hace la cuenta que mencionabas en tu mensaje inicial utilizando el tamaño del archivo y el nivel compresión.
  #13 (permalink)  
Antiguo 15/08/2011, 11:07
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: Desde access leer la duración de una canción mp3

Hola,

Pues sí, así es, pero a mi me vale con el módulo de clase. Una vez me he importado a mi archivo, sólo tengo que llamar a la función correspondiente desde mi código, y en el módulo de clase sustituir la instrucción donde devuelve el tiempo para que lo devuelva donde a mi me interesa.

Saludos y reitero otra vez las gracias.

Etiquetas: access, mp3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:19.