Ir para conteúdo

POWERED BY:

Arquivado

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

Donando

[Resolvido] Preload para FLV

Recommended Posts

Olá Amigos,

sou novato em actionscript. Os tuturiais e topicos do imasters tem me ajudado muito a aprender e resolver problemas no desenvolvimento de meus sites. Melhor forma de se aprender para um autodidata como eu. Parabens Imasters.

 

Li diversos posts e tutorias, mas não estou resolvendo meu problema.

 

Estou desenvolvendo um site que terá vídeos.

Estou importando o videos .mov, tornando os .flv e utilizando o flvplayback.

o problema é que alguns vídeos são muito grandes e travam quando o usuário tem internet mais lenta.

Gostaria de utilizar algum "preload" para carregar o vídeo antes dele começar, resolvendo assim o problema de travar.

tentei adaptar o script abaixo mas não consegui.

 

total = this.getBytesTotal(); 
carregado = this.getBytesLoaded(); 
if (carregado < total) { 
gotoAndPlay(2); 
}

 

Alguem poderira me ajudar? como devo proceder? o caminho é por ai?

 

Muito Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O caminho é por ai mesmo...

 

Só que você tem que por essa ação com um evento de load né

Assim vai funcionar pra pegar os valores...

 

Sem o load não funciona ;)

Ou um onEnterFrame

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado Berseck, mas não estou conseguindo neste caminho.

Consegui pelo help do flash um outro caminho.

 

var connection_nc:NetConnection = new NetConnection();
connection_nc.connect(null);
var stream_ns:NetStream = new NetStream(connection_nc);
video.attachVideo(stream_ns);
stream_ns.play("video.flv");

this.createTextField("loaded_txt",this.getNextHighestDepth(),10,10,160,22);
this.createEmptyMovieClip("progressBar_mc",this.getNextHighestDepth());
progressBar_mc.createEmptyMovieClip("bar_mc",progressBar_mc.getNextHighestDepth());
with (progressBar_mc.bar_mc) {
	beginFill(0xFF0000);
	moveTo(0,0);
	lineTo(100,0);
	lineTo(100,10);
	lineTo(0,10);
	lineTo(0,0);
	endFill();
	_xscale = 0;
}
progressBar_mc.createEmptyMovieClip("stroke_mc",progressBar_mc.getNextHighestDepth());
with (progressBar_mc.stroke_mc) {
	lineStyle(0,0x000000);
	moveTo(0,0);
	lineTo(100,0);
	lineTo(100,10);
	lineTo(0,10);
	lineTo(0,0);
}

var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);
function checkBytesLoaded(my_ns:NetStream) {
	var pctLoaded:Number = Math.round(my_ns.bytesLoaded/my_ns.bytesTotal*100);
	loaded_txt.text = Math.round(my_ns.bytesLoaded/1000)+" of "+Math.round(my_ns.bytesTotal/1000)+" KB loaded ("+pctLoaded+"%)";
	progressBar_mc.bar_mc._xscale = pctLoaded;
	if (pctLoaded>=100) {
		clearInterval(loaded_interval);
	}
}

Assim está funcionando certinho, mas agora o problema é outro. O som está duplicado, como se estivesse com eco. Parece que estão tocando duas linhas do tempo do som.

 

Alguém teria alguma dica de como retirar específicamente apenas 1 som ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Som duplicado??? O.o

Tem certeza que isso ai não é erro do FLV que você ta usando de exemplo não?

 

Já testou outro?

 

Pode ser tbm que você esteja com um outro FLVplayback em sua tela com ele instanciado só que escondido... e ao dar play em 1 da nos 2...

 

da uma olhada nisso

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Droga, de volta a estaca zero. Esse script do netstream não funciona com FLVPlayback, ele deve ser usado com um display de video(actionscript-controled).

Usando este ultimo script (netstream) não posso utilizar os scripts já desenvolvidos, no projeto atual, para o FLVPlayback. Como por exemplo cuepoints, play/pause, volume som, etc.

 

Sendo assim volto a estaca zero.

 

Como fazer um pré-load de um arquivo externo .flv que é chamado pelo FLVPlayback ??

 

Serei muito grato se alguem puder me ajudar.

 

Abs a todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim ;)

 

mx.video.FLVPlayback.FLV;

var obj:Object = new Object();

FLVplayer.contentPath = "http://www.velhochico.com/videos/videos/video_1.flv";

var pl:Number;
var pt:Number;

FLVplayer.metadataReceived = function(){
 pt = FLVplayer.bytesTotal;
}

FLVplayer.onEnterFrame = function(){
 pl = FLVplayer.bytesLoaded;
 var total:Number = Math.round((pl/pt) * 100);
 trace(total);
 if(total == 100) FLVplayer.play();
}

FLVplayer.ready = function(){
 FLVplayer.stop();
}

FLVplayer.addEventListener('ready', obj);
FLVplayer.addEventListener("metadataReceived", obj);

Não era tão complicado era?

Tem no helpzinho do flash... era só dar uma lida...

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito Obrigado Berseck, você é fera!! Realmente olhando agora não parece complicado... Preciso aprender muito ainda...

Procurei bastante em foruns e no help, testei alguns códigos, mas esse não encontrei.

 

Estou a disposição caso precise de alguma ajuda.

 

Mais uma vez, muito obrigado.

 

p.s. Como coloco resolvido neste tópico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabens que conseguiu http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

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

 

Bons estudos ;)

 

E o resolvido só administradores colocam hehe

 

Abraços

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.