Los archivos de sonido MP3 pueden contener etiquetas ID3 que proporcionan metadatos sobre el archivo. Si un sonido MP3 que se carga utilizando Sound.attachSound() o Sound.loadSound() contiene etiquetas ID3, se puede consultar estas propiedades.
En el siguiente ejemplo, usamos el handler onID3() asociado a la clase Sound para determinar cuando la información de la cabecera ID3 ha sido cargada y mostrarla dentro de una caja de texto que creamos a tal efecto.
var Cancion:Sound = new Sound ();
Cancion.onID3 = function ():Void {
for (var i:String in this.id3){
DatosMp3.htmlText += ¨¨ + i + ¨:¨ + this.id3[i] + ¨n¨;
}
};
this.createTextField (¨DatosMp3¨, 1, 10, 10, 500, 300);
DatosMp3.border = true;
DatosMp3.html = true;
DatosMp3.multiline = true;
DatosMp3.wordWrap = true;
Cancion.loadSound (¨song.mp3¨, true);
En un principio se podía accdeer a las propiedades ID3 1.0, con los siguientes métodos:
Sound.id3.comment
Sound.id3.album
Sound.id3.genre
Sound.id3.songname
Sound.id3.artist
Sound.id3.track
Sound.id3.year
Lo cierto es que con estas propiedades nos puede servir en el 99% de los casos pero a partir de las versión 7 del Player, éste admitía etiquetas ID3 2.0. La equivalencia con las etiquetas anteriores sería:
Sound.id3.COMM
Sound.id3.TALB (album)
Sound.id3.TCON (genre)
Sound.id3.TIT2 (songname)
Sound.id3.TPE1 (artist)
Sound.id3.TRCK (track number)
Sound.id3.TYER (year
Pero además, con las etiquetas IDe 2.0 se puede acceder a la siguiente información:
Sound.id3.TFLT: Tipo de archivo
Sound.id3.TIME: Tiempo
Sound.id3.TIT1: Descripción de grupo de contenido
Sound.id3.TIT2: Título/nombre de canción/descripción del contenido
Sound.id3.TIT3: Subtítulo/descripción adicional
Sound.id3.TKEY: Clave inicial
Sound.id3.TLAN: Idiomas
Sound.id3.TLEN: Longitud
Sound.id3.TMED:Tipo de medio
Sound.id3.TOAL: Álbum/película/título de espectáculo original
Sound.id3.TOFN: Nombre de archivo original
Sound.id3.TOLY: Letrista/escritor original
Sound.id3.TOPE: Artistas/intérpretes originales
Sound.id3.TORY: Año de publicación original
Sound.id3.TOWN: Propietario/licenciatario del archivo
Sound.id3.TPE1: Intérpretes/solistas principales
Sound.id3.TPE2: Grupo/orquesta/acompañamiento
Sound.id3.TPE3: Director/intérprete adicional
Sound.id3.TPE4: Interpretado, remezclado o editado por
Sound.id3.TPOS: Parte de un conjunto
Sound.id3.TPUB: Editor
Sound.id3.TRCK: Número de pista/posición en el conjunto
Sound.id3.TRDA: Fechas de grabación
Sound.id3.TRSN: Nombre de emisora de Internet
Sound.id3.TRSO: Propietario de emisora de Internet
Sound.id3.TSIZ: Tamaño
Sound.id3.TSRC: ISRC (código de grabación estándar internacional)
Sound.id3.TSSE: Software/hardware y configuración empleados para la codificación
Sound.id3.TYER: Año
Sound.id3.WXXX: Fotograma de vínculo de URL
El siguiente ejemplo muestra estos datos dentro de un Datagrid:
1.– Desde el panel de componentes arrastramos una instancia de Datagrid y le asignamos como nombre de instancia “id3_dg”
2.– En un fotograma pegamos el siguiente código:
import mx.controls.gridclasses.DataGridColumn;
id3_dg.move (0, 0);
id3_dg.setSize (200, 200);
var DataGrid_Propiedad:DataGridColumn = id3_dg.addColumn (new DataGridColumn (¨property¨));
DataGrid_Propiedad.width = 100;
DataGrid_Propiedad.headerText = ¨Propiedad¨;
var DataGrid_Valor:DataGridColumn = id3_dg.addColumn (new DataGridColumn (¨value¨));
DataGrid_Valor.width = id3_dg._width-DataGrid_Propiedad.width;
DataGrid_Valor.headerText = ¨Valor ID3¨;
var cancion:Sound = new Sound ();
cancion.onID3 = function () {
for (var prop in this.id3) {
id3_dg.addItem ({property:prop, value:this.id3[prop]});
}
};
cancion.loadSound (¨song.mp3¨, true);