Foro de elhacker.net

Foros Generales => Dudas Generales => Mensaje iniciado por: danndres en 17 Septiembre 2014, 20:02 pm



Título: Leer archivos MP3
Publicado por: danndres en 17 Septiembre 2014, 20:02 pm
Leer archivos mp3 con Java

Tengo un proyecto que hacer de parte de la universidad el cual debe leer un archivo mp3 y modificarlo, el problema es que solo puedo usar las clases FileInputStream y DataInputStream, el problema es que no se como leer las etiquetas id3. Espero puedan ayudarme, gracias de antemano.


Título: Re: Leer archivos MP3
Publicado por: engel lex en 17 Septiembre 2014, 21:39 pm
aquí la info al respecto
http://es.wikipedia.org/wiki/ID3 (http://es.wikipedia.org/wiki/ID3)


primero
Citar
un fichero puede contener simultáneamente etiquetas de la versión 1.1 [o 1] y de la versión 2.0

ID3 versión 1
Citar
Esta primera especificación es muy simple. Consiste en adjuntar un bloque de tamaño fijo de 128 bytes al final del fichero en cuestión. Este bloque contiene las siguientes etiquetas:

Una cabecera que identifica la presencia del bloque ID3 y su versión. En concreto, dicha cabecera consta de los caracteres TAG.
-Título: 30 caracteres.
-Artista: 30 caracteres.
-Álbum: 30 caracteres.
-Año: 4 caracteres.
-Un comentario: 30 caracteres.
-Género (musical): un carácter.
Todas las etiquetas usan caracteres ASCII, excepto el género, que es un número entero almacenado en un único byte. El género musical asociado a cada byte está predefinido en el estándar e incluye definiciones de 80 géneros, numerados del 0 al 79.

ID3 versión 1.1
Citar
La versión 1.1 simplemente "resta" los dos últimos caracteres de la etiqueta comentario para este propósito. Para distinguir esta versión de la anterior, el carácter nº 29 debe ser obligatoriamente un carácter nulo, seguido de un número entero en formato byte que almacena el número de canción en el álbum. Si el carácter nº 30 es nulo o si el nº 29 no lo es, el número de canción se presupone no especificado.


ID3 versión 2.0
Citar
Los detalles técnicos son más complejos que en las versiones anteriores. Las diferencias más significativas son las siguientes:

-Utiliza caracteres Unicode, por lo que está abierto a cualquier lengua.
-Las etiquetas se sitúan al principio del fichero, no al final. Esto facilita la difusión por Internet mediante streaming, ya que no hay que esperar a que se descargue todo el fichero para conocer las etiquetas.
-Las etiquetas pueden tener mayor o menor longitud. No hay restricciones.
-Es posible incluir imágenes, no sólo texto. Por ejemplo, la carátula del álbum.
-Admite etiquetas definidas por el usuario.
-Se han predefinido más de 35 etiquetas estándar.
-La letra de la canción se puede almacenar bajo el frame Lyrics3 en la TagID3, al igual que la portada del álbum.
-Las etiquetas pueden ser cifradas.
(hay varias versiones más de 2...)

Es decir para leerlos, tienes que hacer lo siguiente:
(te explicaré en procedimientos y no en codigo, ya que conozco el procedimiento por haberlo hecho en otro leguaje)

para el ID3 v1 que es el más simple
abres el archivo
te mueves hasta la posicion final
retrocedes 128bytes
lees las cantidades de bytes especificadas para cada etiqueta...

ahí debes tener la ID3 v1

la ID3 v2 es más compleja
abres el archivo
empiezas a leer

allí lo primero que consigues son 3 caracteres que dicen "ID3"

luego de unos bytes "0" viene una etiqueta de 4 bytes
la informacion de las etiquetas y como se usa es mucho más complejo (ya que no tienen que seguir un orden especifico y cada una tiene una estructura interna independiente), aquí la info
http://id3.org/id3v2.4.0-frames