Jump to content


Norefenk

Member Since 29/06/2005
Offline Last Active 21/09/2011, 14:00
-----

#803854 Mp3 Player - Reiniciando Toda Hora Qdo Troca A Pagina

Posted by Norefenk on 04/12/2006, 07:17

Tenhu esse, codigo que achei num tutorial sobre mp3 player, mais eu não to conseguindo desativar o som de inicio mesmo colocando várias tags, pedindo para ele não abrir automaticamente
mais se eu faço isso do meu jeito, depois ele não roda randomizado as musicas se a pessoa inicia o play ;/

o que acontece é que toda hora que eu abro uma pagina diferente no site sendo que isso fica na index e a index é fixa, ele automaticamente se inicia tb. do começo, como se fosse apertado o play a intencao era poder apertar stop e fazer ele roda qdo o usuario ativasse apenas... qdo vc entrasse em outra pagina ele continuasse desativado.. mais num sei o que acontece muda de pagina ele se reativa o play sozinho.

:o


// Criamos uma variavel do tipo XML
var 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[i] = this.firstChild.childNodes[i].childNodes[0].childNodes.toString();
		nomes[i] = this.firstChild.childNodes[i].childNodes[1].childNodes.toString();
		artistas[i] = this.firstChild.childNodes[i].childNodes[2].childNodes.toString();
		infos[i] = this.firstChild.childNodes[i].childNodes[3].childNodes.toString();
	}
	//chamamos uma função nomeada trocar_musica com parametro m
	trocar_musica(m);
}
//carregamos o arquivo .XML
oXML.load("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="Musica: " + nomes[n]; 
	status_txt.text+="\nArtista: " + artistas[n];
	
   //Desativado o texto de informações, para ativar apenas tirar as barras
	//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 OFF"
//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 OFF"
	}
	//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 ON"
	}
}
//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);
	}
}




IPB Skin By Virteq