Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MaiconCarlos

Barra do player ficou louca....

Recommended Posts

Galera, a partir de um player criado por Rafael Nuenlist eu adaptei um tocador de mp3, gostei do exemplo dele porque tem barra, e já é em AS3, aqui localmente funciona muito bem mas na internet fica louco, as vezes a barra vai mais rápida, as vezes vai mais lenta, as vezes ele terminar antes do esperado.

 

O que eu entendi é que, quando eu passo a musica para frente, parece que nao carregou ela totalmente, ele começa a carregar e vai voltando a barra.

 

SEGUE O ARQUIVO FLV

 

Eu fiz essa função:

 

function isBuffer(event:TimerEvent):void {
		if (sound.isBuffering) {
			buffer.visible = true;
		} else {
			buffer.visible = false;
		}
}

para saber quando estava bufferizando, ai eu poderia parar a barra ou coisa assim, mas nao funcionou....

 

Estou tentando melhorar isso...mas se alguém puder ajudar. Agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, a partir de um player criado por Rafael Nuenlist eu adaptei um tocador de mp3, gostei do exemplo dele porque tem barra, e já é em AS3, aqui localmente funciona muito bem mas na internet fica louco, as vezes a barra vai mais rápida, as vezes vai mais lenta, as vezes ele terminar antes do esperado.

 

O que eu entendi é que, quando eu passo a musica para frente, parece que nao carregou ela totalmente, ele começa a carregar e vai voltando a barra.

 

SEGUE O ARQUIVO FLV

 

Eu fiz essa função:

 

function isBuffer(event:TimerEvent):void {
		if (sound.isBuffering) {
			buffer.visible = true;
		} else {
			buffer.visible = false;
		}
}

para saber quando estava bufferizando, ai eu poderia parar a barra ou coisa assim, mas nao funcionou....

 

Estou tentando melhorar isso...mas se alguém puder ajudar. Agradeço

 

Entendi qual era o erro.

 

Agora surgiu uma dúvida, é possível monitorar o buffer?

 

Por exemplo se a musica está tocando mais rápido que o buffer, eu queria colocar uma mensagem, estou tentando com event:ProgressEvent, mas se alguém já tiver alguma coisa ou dica?

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você estiver usando a classe NetStream, pode usar as propriedades bufferTime para saber o tamanho do buffer e bufferLength para saber o valor atual dele

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você estiver usando a classe NetStream, pode usar as propriedades bufferTime para saber o tamanho do buffer e bufferLength para saber o valor atual dele

 

 

 

 

[]´s

Nesse caso o servidor precisa aceitar essa classe com algum componente instalado ou nada a ver?

 

Digo isso porque to usando o modo normal de som que é this.som.load(som, buffer), mas nesse caso tá muito f***, tem hora que toca até a metade, tem hora que o som trava.....

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa configurar nada no servidor, mas se você usar a classe Sound não dá pra configurar o buffer, tem que usar a classe NetStream, dá uma olhada no help do flash que tem um exemplo

 

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa configurar nada no servidor, mas se você usar a classe Sound não dá pra configurar o buffer, tem que usar a classe NetStream, dá uma olhada no help do flash que tem um exemplo

 

 

 

 

[]´s

 

Nesse caso se eu usar essa Classe eu nao teria que usar o Flash Media Server? E essa classe não é especificamente para vídeos?

 

Usando assim:

 

var som:Sound = new Sound();

var canaldoSom:SoundChannel = new SoundChannel() ;

var urlRequest:URLRequest = new URLRequest("vereadores.mp3");

var buffered:SoundLoaderContext = new SoundLoaderContext(10000, true);

 

Quando eu crio o SoundLoaderContext, eu nao estaria "Carregando a musica e tocando ao mesmo tempo?".

 

E:

this.soun.isBuffering;

 

Returns the buffering state of external MP3 files. If the value is true, any playback is currently suspended while the object waits for more data. (Nesse caso eu saberia que a musica nao está tocando porque está carregando mais dados certo?).

 

Então, até ai eu acho que entendi bem, e acho que com essas informações eu consigo administrar bem uma mp3, minha dúvida realmente é a seguinte, se eu tiver uma barra que mostra o progresso da musica, e eu adiantar essa barra para 75% da musica, nesse caso como eu administro isso? Pois a musica teria que carregar até aquela posicao, para ai sim começar a tocar. E é aí que estou meio perdido.

 

Para saber o tanto que a musica carregou eu to usando assim:

 

function onLoadProgress(event:ProgressEvent):void

{

event.bytesTotal;

event.bytesLoaded;

}

 

 

Espero que as dúvidas nao sejam tão primárias, adiei bastante a idéia de estudar flash, mas agora nao tem mais volta..rs

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sim precisaria do Flash Media Server, eu não tinha reparado que você esta usando AS3, pois no AS2 que a classe Sound não tem controle de buffer

 

sobre sua duvida, para pular a musica para uma parte especifica dela, no metodo play você passa em que ponto da musica ela deve iniciar,

 

som.stop()
som.play(2000)

 

esse valor é em milisegundos, então você vai ter que calcular o ponto exato

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sim precisaria do Flash Media Server, eu não tinha reparado que você esta usando AS3, pois no AS2 que a classe Sound não tem controle de buffer

 

sobre sua duvida, para pular a musica para uma parte especifica dela, no metodo play você passa em que ponto da musica ela deve iniciar,

 

som.stop()
som.play(2000)

 

esse valor é em milisegundos, então você vai ter que calcular o ponto exato

 

 

[]´s

Ufa, consegui bastante coisa, o player está quase pronto, porém, eu fiz um teste e verifiquei que, algumas vezes para de carregar sem mais nem menos, testei com outros players pronto e notei a mesma coisa, está relacionado a minha internet que tá dando muito pico.

 

Ai veio uma dúvida, é possível monitorar que não está carregando e que não terminou, e assim, dar tipo de um refresh e continuar do local que parou, ou monitorar que a net não está enviando pacotes e fazer esse tal refresh?

 

Seria como se a internet estivesse enviando pacotes, dai era para por alguns segundos...de enviar, assim o player para de carregar...nem aparece buffer nem nada..

 

att http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.