Quizás muchos de ustedes ya conocen el excelente tutorial de Tiago's Weblog acerca de como hacer un reproductor personalizado de mp3 mediante streaming.
Este tip es para que puedan hacer lo mismo pero con archivos externos al sitio donde alojan su web. En mi caso estoy usando mp3 royalty free de la página de Last.fm http://www.lastfm.es/music/+free-music-downloads.
1. Crear los botones con los cuales vamos a manipular el sonido.
btn_play
btn_stop
btn_prev
btn_next
2. Crear un XML usando Dreamweaver o el block de notas con el siguiente código:
Código XML :
< ?xml version='1.0' encoding='utf-8'?> <songs> <song name="Pixel2Life Soundtrack 01" file="music/p2l_01.mp3" > </song><song name="Twodded Soundtrack 01" file="music/twod_01.mp3" > </song></songs>
Para que esta herramienta funcione con archivos externos, basta con reemplazar en la sentencia file="url del mp3"
Ejemplo:
Código XML :
< ?xml version='1.0' encoding='utf-8'?> <songs> <song name="Pixel2Life Soundtrack 01" file="http://freedownloads.last.fm/download/297170760/Shot%2BIn%2BThe%2BBack%2BOf%2BThe%2BHead.mp3" > </song><song name="Twodded Soundtrack 01" file="http://freedownloads.last.fm/download/216283560/Bear.mp3" > </song></songs>
El código que deben ingresar en la película el el frame del sonido es este:
Código ActionScript :
stop(); playlist= new XML(); playlist.ignoreWhite=true; playlist.onLoad = function (success) { if(success) { _global.songname = []; _global.songfile = []; for (var i=0; i<playlist .firstChild.childNodes.length; i++) { _global.songname[i] = playlist.firstChild.childNodes[i].attributes.name; _global.songfile[i] = playlist.firstChild.childNodes[i].attributes.file; trace(songname[i]+" "+songfile[i]); } _root.createEmptyMovieClip("sound_mc",1); _root.sound_mc.sound_obj = new Sound(); _global.song_nr = random(songfile.length); _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); } else {display_txt.text="Error Loading XML"} } MovieClip.prototype.songStarter = function (file, name) { this.sound_obj.loadSound(file,true) this.onEnterFrame = function () { if(this.sound_obj.position>0) { delete this.onEnterFrame; this._parent.display_txt.text=name; } else { this._parent.display_txt.text="loading..." } } this.sound_obj.onSoundComplete = function () { (song_nr==songfile.length-1)? _global.song_nr=0 : _global.song_nr++; _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); } } btn_play.onRelease = function () { this._parent.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); } btn_stop.onRelease = function() { this._parent.sound_mc.sound_obj.stop(); } btn_next.onRelease = function () { (song_nr==songfile.length-1)? _global.song_nr=0 : _global.song_nr++; _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); } btn_prev.onRelease = function () { (song_nr==0)? _global.song_nr=songfile.length-1 : _global.song_nr--; _root.sound_mc.songStarter(songfile[song_nr],songname[song_nr]); } playlist.load("playlist.xml"); </playlist>
Si quieren mas detalles, ir aquí (English)
Si quieren el reproductor con Tiempo transcurrido, control de volumen entre otras cosas, ir aquí (English)
Ahora bien, si quieren algo todavía mas completo como Visor de carátulas y botón de pausa, ir aquí (English)
Mi ejemplo: http://www.acticonsulting.com/flash/es/
Espero que les sirva.