Los archivos de audio en formato MP3 pueden contener metadatos con la información relacionada al nombre de la canción, del disco, del año, etc... Estos metadatos son necesarios para poder catalogar los archivos de audio en programas como iTunes. Este sistema de etiquetado de archivos MP3 es lo que se denomina el ID3.
En este webtip veremos como recuperar la información de las etiquetas ID3 del archivo que estamos reproduciendo en nuestra película flash.
Anteriormente ya vimos como reproducir un audio en formato MP3 con actionscript 3, así que utilizaremos esa clase como punto de partida y la ampliaremos para implementar la recuperación de la información del archivo.
EL primer paso será añadir las nuevas clases que vamos a necesitar: Las clases ID3Info y Event.
Código :
package { import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundLoaderContext; import flash.media.ID3Info import flash.events.Event;
La clase ID3Info contiene las propiedades de los metadatos ID3, que son los siguientes:
- album : String // El nombre del álbum.
- artist : String // El nombre del grupo/cantante.
- comment : String // El comentario añadido.
- genre : String // El estilo de música
- songName : String // El nombre de la canción.
- track : String // El número de track.
- year : String // El año del disco.
Código :
public function Sonido(qUrl:String, qBuffer:Number, qIni:Number, qLoop:Number){ url = new URLRequest(qUrl); buffer = new SoundLoaderContext(qBuffer*1000); ini = qIni*1000; loop = (qLoop >= 0) ? qLoop : int.MAX_VALUE; so = new Sound(url, buffer); so.play(ini, loop); so.addEventListener(Event.ID3, onID3); }
De esta manera al cargar el archivo MP3, si este contiene metadatos ID3 se ejecutará el método onID3.
Ahora toca crear esta función:
Código :
public function onID3(event:Event):void{ var soInfo:ID3Info = ID3Info(so.id3); trace("artist: " + soInfo.artist); trace("track: " + soInfo.track); trace("comment: " + soInfo.comment); trace("songName: " + soInfo.songName); trace("album: " + soInfo.album); trace("genre: " + soInfo.genre); trace("year: " + soInfo.year); }
Únicamente hemos añadido unos traces que nos montarán la información del archivo de audio. Aquí cada cual añadirá los comandos que le interesen según las necesidades de su película. Como por ejemplo, colocar estos datos dentro de Fields o de componentes...
Pd: La creación del objeto ID3Info no es del todo necesaria ya que podríamos haber accedido a los metadatos directamente del objeto Sound,aunque nunca está de más:
Código :
trace("artist: " + so.id3.artist);
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Sisco el 18 de Enero de 2007
Por Freddie el 18 de Enero de 2007
Por apolo el 19 de Enero de 2007
Por elad el 23 de Julio de 2008
Por Freddie el 23 de Julio de 2008
elad-blog :
Por gmancito el 23 de Noviembre de 2008