2011-06-10 33 views

Respuesta

29

Usted puede obtener todo esto utilizando MediaMetadataRetriever

MediaMetadataRetriever mmr = new MediaMetadataRetriever(); 
mmr.setDataSource(filePath); 

String albumName = 
    mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM); 
+0

gracias .. cualquier ejemplo me puede indicar también –

+0

No puedo importar MediaMetadataRetriever. Eclipse no proporciona la opción. alguna idea ? –

+0

Se puede usar en api level 10 o GingerBread. – Reno

4

Comprobar the MP3 file format. Básicamente, debe leer los últimos 128 bytes del archivo; si los primeros 3 bytes son "TAG", continúe y lea los campos que necesita; si no, el archivo no tiene la información adjunta.

+0

quiero saber cómo ponerlo en práctica en Android. Alguna idea ? –

+1

Crea un 'InputStream' del archivo y un buffer de 128 bytes; lea los últimos 128 bytes en el búfer; compruebe los primeros 3 bytes del búfer, debería ser 'TAG'; lee los bytes relevantes usando 'Arrays.copyOfRange'; convierte esos bytes a 'int' (para el género) o' String' (para todo lo demás). –

+0

No es tan simple. Hay más versiones de etiquetas, esta es fácil de leer solo la versión anterior. –

3

si el último byte 128 comienza con la "TAG" contadores al archivo tiene un ID3v1 (o ID3v1.1) etiqueta. Las etiquetas ID3v2.3 se encuentran en el comienzo del archivo (adecuado para la transmisión) indicado por el token "id3". Creo que ID3v2.4 está indicado por "3DE", pero no estoy seguro ...

+0

Esta fue exactamente la información que necesitaba, ¡gracias! Estaba intentando hacer coincidir los MP3 de Bandcamp con Elixir y siempre recibí un error, porque los MP3 de Bandcamp están etiquetados con ID3v2.3. Me recomendaría cien veces, si pudiera. – odiumediae