Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, venho pedir ajuda em um código de mp3 player que consegui na net(não lembro o nome do autor).
Seguinte, ele tem bts de avançaR, pause, play, stop e voltar.
porem, a musica carrega sem o usuário ver a porcentagem que ela está carregando, um preloader bem dizendo, para cada mp3.
segue o código:
CODE
// Criamos uma variavel do tipo XMLvar oXML:XML = new XML();
// Ignoramos os espaços em branco
oXML.ignoreWhite = true;
// Variáveis com os dados que serão utilizados
// Quantidade de itens
var quant:Number;
// Contem as urls das musicas (prefira colocar o caminho completo, por exemplo http://www.seusite.com/musica.mp3, para que não haja problemas com navegadores diferentes)
var urls:Array = new Array();
// Contem os nomes das musicas
var nomes:Array = new Array();
// Nomes dos artistas
var artistas:Array = new Array();
// Informações adicionais
var infos:Array = new Array();
// Quanto o arquivo for carregado
oXML.onLoad = function():Void{
// Valor de quant
quant = this.firstChild.childNodes.length;
// Laço for iniciado com i =0 até i=quant
for(var i:Number=0; i<quant; i++){
//preenchemos as variaveis com seus dados correspondentes.
//para compreender a logica usado de uma passada no artigo sobre XML
urls* = this.firstChild.childNodes**.childNodes[0].childNodes.toString();*
nomes = this.firstChild.childNodes.childNodes[1].childNodes.toString();
artistas = this.firstChild.childNodes.childNodes[2].childNodes.toString();
infos = this.firstChild.childNodes.childNodes[3].childNodes.toString();
}
//chamamos uma função nomeada trocar_musica com parametro m
trocar_musica(m);
}
//carregamos o arquivo .XML
oXML.load("http://www.seusite.com.br/player.xml");
//criamos uma variavel numerica que armazena o numero da musica tocando
var m:Number = 0;
//criamos uma variavel do tipo Sound nomeada som_sound
var som_sound:Sound = new Sound();
//criamos uma função chamada trocar_musica que irá, como o nome já diz, trocar as musicas.
//o parametro n é o numero da musica a ser tocado
function trocar_musica(n:Number){
//pára o som tocado
som_sound.stop();
//carregamos o arquivo o arquivo numero n do XML em modo sem Streaming
som_sound.loadSound(urls[n],false);
//preenche o campo de texto com as informações correspondentes
status_txt.text="" + nomes[n];
//status_txt.text+="\nArtista: " + artistas[n];
//status_txt.text+="\nInformações: " + infos[n];
//quando o som for carregado completamente
som_sound.onLoad=function(){
//inicia o som
som_sound.start(0,0);
//torna o botão play_btn desativado
play_btn.enabled=false;
}
}
//definimos uma variavel nomeada pausar
var pausar:Number = 0;
//quando o botão play_btn for pressionado
play_btn.onPress=function():Void{
//inicia o som no instante definido pela variavel pausar
som_sound.start(_root.pausar,0);
//desabilita o botão play_btn
play_btn.enabled=false;
//reabilita o botão pause_btn
pause_btn.enabled=true;
}
//quando o botão stop_btn for pressionado
stop_btn.onPress=function():Void{
//para o som
som_sound.stop();
//reabilita o botão play_btn
play_btn.enabled=true;
//define o valor da variavel pausar para 0
pausar = 0;
//desabilita o botão pause_btn
pause_btn.enabled=false;
}
//quando o botão pause_btn for pressionado
pause_btn.onPress=function():Void{
//reabilita o botão play_btn
play_btn.enabled=true;
//definimos o valor da variavel pausar (o /1000 converte milisegundos em segundos)
pausar = som_sound.position/1000;
//paramos o som
som_sound.stop();
}
//quando o botão sforw_btn for pressionado
sforw_btn.onPress=function(){
//criamos um intervalo nomeado intID que executa a função
intId = setInterval(function(){
//verificamos se há tempo suficiente no som para avançar
//caso sim
if(som_sound.position+1000<=som_sound.duration){
//criamos uma variavel numerica que armazena a posição (em segundos) em que o som está, e soma 1 segundo
var pos:Number = ((som_sound.position)/1000)+1;
//pára o som
som_sound.stop();
//recomeça o som no instante armazenado na variavel pos
som_sound.start(pos, 0);
}
//caso não
else{
//limpamos o intervalo
clearInterval(intId);
}
//o intervalo definido é de 50milisegundos
},50);
}
//quando o botão sforw_btn for solto, ou o mouse sair da area, ou se o mouse for pressionado e levado para fora
sforw_btn.onDragOut = sforw_btn.onRelease = sforw_btn.onRollOut = function(){
//limpamos o intervalo
clearInterval(intId);
}
//as linhas a seguir são semelhantes, mas ao invés de somar 1 segundo. Subtraimos 1 segundo.
*sback_btn.onPress=function(){*
* intId = setInterval(function(){*
if(som_sound.position-1000>=0){
var pos:Number = ((som_sound.position)/1000)-1;
som_sound.stop();
som_sound.start(pos, 0);
}
else{
clearInterval(intId);
}
},50);
}
sback_btn.onDragOut = sforw_btn.onRelease = sforw_btn.onRollOut = function(){
clearInterval(intId);
}
//criamos uma variavel do tipo booleana chamada "loop" que armazenará o estado do loop
var loop:Boolean = false;
//alteramos o texto "loop_txt" para o estado desligado
loop_txt.text = "Loop desligado"
//quando o botão loop_btn for pressionado
loop_btn.onPress=function(){
//se a variavel loop for verdadeita
if(loop){
//torna a variavel loop falsa
loop = false;
//altera o campo de texto para o estado desligado
loop_txt.text = "Loop desligado"
}
//caso o loop seja falso
else{
//torna a variavel loop verdadeira
loop = true;
//altera o campo de texto para o estado ligado
loop_txt.text = "Loop ligado"
}
}
//quando o som terminar de ser tocado
som_sound.onSoundComplete=function(){
//se a variavel loop for verdadeira
if(loop){
//inicia o som novamente
som_sound.start(0,0);
//define a variavel pausar para 0 (para não haver problema algum)
pausar = 0;
}
//caso contrário
else{
//pára o som
som_sound.stop();
//se o m (musica atual) for menor que a quantidade total de musica
if(m<quant-1){
//incrementa a variavel m em uma unidade (equivalente a m = m+1)
m++;
//troca a musica para o novo m
trocar_musica(m);
}
//caso não
else{
//torna o m=0
m=0;
//troca a nusica para o novo m, reiniciando as musicas
trocar_musica(m);
}
}
}
//quando o botão next_btn for pressionado
next_btn.onPress=function(){
//se m (musica atual) for menor que a quantidade de musicas
if(m<quant-1){
//incrementa em uma unidade a variavel m (m = m+1)
m++;
//troca a musica para o novo m
trocar_musica(m);
}
}
//quando o botão prev_btn for pressionado
prev_btn.onPress=function(){
//se m (musica atual) for maior que 0
if(m>0){
//decrementa em uma unidade a variavel m (m = m-1)
m--;
//troca a musica para o novo m
trocar_musica(m);
}
}
player.xml
CODE
*<?xml version="1.0" encoding="utf-8"?>**<player>*
* <musica>*
* <url>*[http://www.seusite.com.br/musica1.mp3](http://www.seusite.com.br/musica1.mp3)
* <nome>nome da música</nome>*
* <artista>nome da música</artista>*
* </musica>*
* <musica>*
* <url>*[http://www.seusite.com.br/musica2.mp3](http://www.seusite.com.br/musica2.mp3)
* <nome>nome da música</nome>*
* <artista>nome da música</artista>*
* </musica>*
*</player>*
GOSTARIA DE SABER COMO COLOCAR UM PRELOADER PARA AS MÚSICAS.
VALEU
Carregando comentários...