Foros del Web » Creando para Internet » Flash y Actionscript »

reproducir mp3 conforme a lista

Estas en el tema de reproducir mp3 conforme a lista en el foro de Flash y Actionscript en Foros del Web. hola amigos foreros vengo con unda duda que no he podido aclarar, veran, tengo una reproductor de mp3, que tiene su lista de archivos para ...
  #1 (permalink)  
Antiguo 11/04/2006, 11:22
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
reproducir mp3 conforme a lista

hola amigos foreros vengo con unda duda que no he podido aclarar, veran, tengo una reproductor de mp3, que tiene su lista de archivos para reproducir y utilizo el componente mediaplayback para reproducir los archivos, sin embargo el problema es que solo reproduce uno, para reproducir el siguiente el usuario tiene que seleccionarlo desde un componente list para que el mediaplayback lo reprodusca, lo que busco es que al terminar una cancion carge la siguiente, aqui dejo el codigo que tengo

Código:
var lista_xml:XML = new XML();

lista_xml.ignoreWhite = true;


lista_xml.onLoad = function(ok){

    if(ok) llenar_lista(this.firstChild.childNodes);

    else trace('error al cargar la lista');
}

var llenar_lista:Function = function(lista:Array){

    var proveedor:Array = new Array();

    mi_lista.dataProvider = proveedor;

    for(n=0;n<lista.length;n++){
        proveedor.addItem({label:lista[n].attributes.nombre, data:lista[n].attributes.ruta});
    }
    mi_lista.addEventListener("change", alSeleccionar);
};

lista_xml.load('lista_mp3.php');

mi_sonido = new Sound();

mi_sonido.onID3 = function():Void {
    mp3_artista.text = mi_sonido.id3.artist;
    mp3_titulo.text = mi_sonido.id3.songname;
    mp3_albun.text = mi_sonido.id3.album;
};

player.volume = "100";

alSeleccionar = new Object();
alSeleccionar.change = function(evento){
        mi_sonido.loadSound(mi_lista.getItemAt(mi_lista.selectedIndex).data);
        player.setMedia(mi_lista.getItemAt(mi_lista.selectedIndex).data, "MP3");
        player.play();
}

stop();
toda ayuda, sigerencia o comentario es bienvenido
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #2 (permalink)  
Antiguo 11/04/2006, 12:19
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Hola Nemutagk:
Si quieres cargar varias canciones una tras otra coloca éste código en el primer frame de tu película:
stopAllSounds();
a = 1;
_root.musica1 = new Sound(this);
_root.musica1.loadSound("sonidos/cancion"+a+".mp3", true);
_root.musica1.onSoundComplete = function() {
if (a<4) {
a = a+1;

_root.musica1.loadSound("sonidos/cancion"+a+".mp3", true);
} else {
a = 1;
_root.musica1.loadSound("sonidos/cancion"+a+".mp3", true);

}
};
Las canciones deben de estar dentro de la carpta Sonidos

Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 11/04/2006, 13:06
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
gracias por responder, sin embargo como apenas estoy comenzando con actionscript pues no estoy muy seguro como implementar lo que me has puesto con el script que ya tengo armado, he intentado varias cosas pero no funcionan, no cargan el archivo siguiente del componente List
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #4 (permalink)  
Antiguo 11/04/2006, 14:24
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
bueno, eh logrado hacer que el reproducto siga reproduciendo los archivos que se encuentran en el componente list, por si alguien lo necesita aqui dejo el codigo final

Código:
var lista_xml:XML = new XML();
lista_xml.ignoreWhite = true;
lista_xml.onLoad = function(ok) {
    if (ok) {
        llenar_lista(this.firstChild.childNodes);
    } else {
        trace('error al cargar la lista');
    }
};
var llenar_lista:Function = function (lista:Array) {
    var proveedor:Array = new Array();
    mi_lista.dataProvider = proveedor;
    for (n=0; n<lista.length; n++) {
        proveedor.addItem({label:lista[n].attributes.nombre, data:lista[n].attributes.ruta});
    }
    mi_lista.addEventListener("change", alSeleccionar);
};
lista_xml.load('lista_mp3.xml');
mi_sonido = new Sound();
mi_sonido.onID3 = function():Void  {
    mp3_artista.text = mi_sonido.id3.artist;
    mp3_titulo.text = mi_sonido.id3.songname;
    mp3_albun.text = mi_sonido.id3.album;
};
player.volume = "100";
var num_item:Number;
alSeleccionar = new Object();
alSeleccionar.change = function(evento) {
    mi_sonido.loadSound(mi_lista.getItemAt(mi_lista.selectedIndex).data);
    player.setMedia(mi_lista.getItemAt(mi_lista.selectedIndex).data, "MP3");
    player.play();
    num_item = mi_lista.selectedIndex+1;
    trace(num_item);
};
var myListener:Object = new Object();
myListener.complete = function(eventObj:Object) {
    var repro:Number = mi_lista.selectedIndex+1;
    if (repro<mi_lista.length) {
        mi_sonido.loadSound(mi_lista.getItemAt(repro).data);
        player.setMedia(mi_lista.getItemAt(repro).data, "MP3");
        player.play();
    }
};
player.addEventListener("complete", myListener);
stop();
de antemano gracias bandit

EDICION: bueno, despues de probar el codigo de arriba note que al seleccionar la primera cancion del list y al terminar esta la segunda se repetia pues mi_lista.selectedIndex seguia dando al primer archivo, entonses se tenia que cambiar mi_lista.selectedIndex para que seleccionara el segundo archivo y al terminar este pasar al siguiente archivo, ahora indico el codigo correcto (solo de esa parte)

Código:
var myListener:Object = new Object();
myListener.complete = function(eventObj:Object) {
    var repro:Number = mi_lista.selectedIndex+1;
    if (repro<mi_lista.length) {
        mi_sonido.loadSound(mi_lista.getItemAt(repro).data);
        player.setMedia(mi_lista.getItemAt(repro).data, "MP3");
        player.play();
        mi_lista.selectedIndex = repro;
    }
};
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 11/04/2006 a las 15:16
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:54.