A pedido de un amigo (Pablo Hamada) prepare este reproductor de mp3 que en particular tiene la posibilidad de levantar una lista de reproducción de temas cargados de una carpeta automáticamente, con solo poner nuestros mp3, el flash se encarga de leerlos y presentarlos en un componente tipo list.
Otras de las particularidades que incluyes es que lee las etiquetas ID3 de nuestros mp3s, dichas etiquetas son las que traen los archivos mp3 con información de nombre del álbum, nombre del tema y muchas cosas mas.
Este ejemplo es totalmente orientado a modo de aprendizaje para que ustedes puedan aprender un poquito mas sobre la clase sound y puedan experimentar mas.
Actionscript:
-
//esta linea lo que hace es evitar que se cachee la lista de temas
-
#include "skipCache.as"
-
//para uso de caracteres especiales
-
System.useCodepage = true;
-
//la carpeta donde estan los mp3
-
var filesMp3:String = "http://www.leobaraldi.com.ar/imagenesgenericas/repmp3/temas/";
-
var temaActual:Number = 0;
-
//estructura xml
-
miXML = new XML();
-
//ignorar espacios en blanco
-
miXML.ignoreWhite = true;
-
//detector si se realizo la carga
-
miXML.onLoad = function(ok) {
-
//si se realiso la carga bien
-
if (ok) {
-
//generamos u array con los elemntos encontrados en la carpeta filesMp3
-
misTemas_array = this.firstChild.childNodes;
-
//recorremos nuestro array para rellenar nuestra lista de temas
-
for (var i = 0; i var nombreFile = misTemas_array[i].attributes.name;
-
my_list.addItem({data:nombreFile, label:nombreFile});
-
}
-
} else {
-
// error
-
}
-
};
-
miXML.load(filesMp3+"lista.php"+getSkipCacheString());
-
//declaramos un objeto sonido
-
var my_sound:Sound = new Sound();
-
//recuperar nombre del tema para nuestra lista
-
my_sound.onID3 = function() {
-
//nombre de artista
-
artistaID3 = my_sound.id3.artist;
-
nombArtista_txt.text = artistaID3;
-
//nombre del tema
-
temaID3 = my_sound.id3.TIT2;
-
nombTema_txt.text = temaID3;
-
//nombre del album
-
albumID3 = my_sound.id3.album;
-
nombAlbum_txt.text = albumID3;
-
//año
-
anoID3 = my_sound.id3.year;
-
ano_txt.text = anoID3;
-
//comentarios
-
comentID3 = my_sound.id3.COMM;
-
//si quieren pueden incluir algunos condicionales pero no siempre
-
//nos devuelve undefined
-
if (comentID3 == undefined) {
-
comentarios_txt.text = "Sin datos...";
-
} else {
-
comentarios_txt.text = comentID3;
-
}
-
};
-
//creamos un escuchador para nuestra lista
-
var listListener:Object = new Object();
-
//detecta si hacemos clic sobre un tema
-
listListener.change = function(evt_obj:Object) {
-
//ejecuta el sonido
-
my_sound.loadSound(filesMp3+evt_obj.target.selectedItem.data, true);
-
//ejecuta una mascarita :P
-
maskInfo_mc.gotoAndPlay("go");
-
cargar();
-
};
-
// Añadir detector.
-
my_list.addEventListener("change", listListener);
-
//cargador que nos indicara el progreso de la carga del sonido
-
function cargar() {
-
carga_mc._visible = true;
-
carga_mc.onEnterFrame = function() {
-
//aqui averiguamos el peso total de nuestro sonido
-
total = my_sound.getBytesTotal();
-
//aqui detectamos cuanto se ha cargado de nuestro tema
-
cargado = my_sound.getBytesLoaded();
-
//por regla de 3 sacamos el porcentaje de carga
-
porcentaje = Math.round((cargado*100/total));
-
//le indicamos donde queremos que se dirija la barra
-
this.gotoAndStop(porcentaje);
-
//condicional que si llegamos a cargar el 100% lo siguiente:
-
if (porcentaje == 100) {
-
//eliminar el EnterFrame asi no nos consume memoria
-
delete this.onEnterFrame;
-
carga_mc._visible = false;
-
}
-
};
-
}
-
//acciones botones simples
-
stop_btn.onRelease = function() {
-
my_sound.stop();
-
};
-
play_btn.onRelease = function() {
-
my_sound.start();
-
};
-
//
-
carga_mc._visible = false;
12 febrero, 2007 at 5:11 pm
que groso vieja... ud sí q sabe. muchas gracias!!! ahorita mismo lo pruebo!
19 febrero, 2007 at 9:00 am
enorme!!!
habría que atacar sobre el "listener" para hacer una función que nada más publicáramos la película hiciera que sonara el primer tema???
19 febrero, 2007 at 12:21 pm
bueno, hemos avanzado algo!
aunque me es imposible hacer que suene el primer tema al publicar, si que he conseguido que quede seleccionado mediante selectedIndex. Aún asi al hacer el getItemAt con la matriz no consigo que llege a la carpeta /temas donde van los mp3 y el php...se queda en la carpeta de raiz y me dice que no lo encuentra!
te paso mi código a ver si te suena algo!
[cdg]
miXML.onLoad = function(ok) {
//si se realiso la carga bien
if (ok) {
//generamos u array con los elemntos encontrados en la carpeta filesMp3
misTemas_array = this.firstChild.childNodes;
//recorremos nuestro array para rellenar nuestra lista de temas
for (var i = 0; i
19 febrero, 2007 at 12:22 pm
perdón, era muy largo
[cdg]
miXML.onLoad = function(ok) {
//si se realiso la carga bien
if (ok) {
//generamos u array con los elemntos encontrados en la carpeta filesMp3
misTemas_array = this.firstChild.childNodes;
//recorremos nuestro array para rellenar nuestra lista de temas
for (var i = 0; i
10 marzo, 2007 at 1:24 am
he creado unplay list para que escuchen la radio por internet pero solofunciona e mi pc ya que al subirlo a la pagina no funciona he visto que nesecito algo de crossdomain.xml pero no se como integrarlo al play list aver si me ayudas en este caso grascias
23 abril, 2007 at 2:48 pm
te agradezco tu dedicación.... yo se muy poco de flash y estoy intentando realizar un reproductor de mp3. para mi mala suerte no me resultó como lo describiste... más que no me resultó no logré entender lo que estaba haciendo. claramente necesito explicación basica con manzanitas.
gracias por tu tiempo!
30 agosto, 2007 at 5:36 pm
¿Y si la lista de mp3 está en un banco de datos? Por ejemplo: Tengo dos cantantes y cada uno tiene tres canciones. En la carpeta están las seis pero una vez quiero escoger los temas de uno y otra de otro.
En sql es fácil pero entre php y flash me lio.
Saludos.
7 diciembre, 2007 at 4:47 pm
hey viejo me quito el sombrero exelente trabajo justo lo q necesitaba
29 septiembre, 2009 at 10:15 am
hola amigo muy buen trabajo
pero a la hora de subir mis musicas no puedo vizualizar los mios solo los tuyos, incluso cuando subo las musicas de ejm a mi pag y cambiando la dirección
algo debe faltar, gracias por la ayuda!
1 noviembre, 2009 at 12:41 pm
MUCHAS GRACIAS POR ESTE EJEMPLO, ESTA MUY BUENO, CHEVERE ESO DE COMPARTIR PARA QUE OTROS APRENDAN, ESTUDIARE EL CODIGO PARA APLICARLO. MUCHAS GRACIAS.
1 noviembre, 2009 at 12:42 pm
ESTA COMPLETO
1 noviembre, 2009 at 3:17 pm
me gustari ver un tutorial para videos, la verdad e buscado en intentado pero son confusos e incompletos.
espero me puedas ayudar.
25 junio, 2010 at 12:25 pm
muy bueno! es lo que necesitaba para mi sitio, muchisimas gracias!!!!
21 septiembre, 2010 at 7:30 pm
Excelente aporte!!! Muchas gracias por compartir esto con la gente!!
14 octubre, 2010 at 6:53 pm
mmm todo muy lindo... pero como le das un aspecto mas agradable? porque la verdad prefiero un repro en jquery que al menos lo skineas como queres...
14 octubre, 2010 at 11:37 pm
el tutorial es para aquellos que quieran saber como leer id3, en ningún momento hace referencia a otra cosa, cada uno lo edita como quiere. Y en lo posible no preguntes idioteces antes de leer.