Ir para conteúdo

POWERED BY:

Arquivado

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

lemissel

NetStream em loop

Recommended Posts

E aí pessoal, tranquilo?

 

Não manjo muito de Action Script, muito menos da versão 3, mas precisei me arriscar para solucionar um problema na Empresa.

Fato é que estou me conectando no FMS (servidor de stream) e exibindo vídeos, até aí tranquilo, tudo funcionando!

Só que os vídeos sob demanda, isto é, aqueles que são "estáticos" (estão hospedados no FMS esperando que ue me conecte e exiba-o), não ficam em loop, eles executam só uma vez e eu preciso que eles fiquem em loop infinito.

 

Meu código está assim...

...

function doStream():void {
var ns:NetStream=new NetStream(nc);
vd.attachNetStream(ns);
vd.width = 1620;
vd.height = 1200;
ns.play("video_flv");

//Ouvintes de eventos
ns.addEventListener(NetStatusEvent.NET_STATUS, handlerNetStreamStatus);
}

function handlerNetStreamStatus(evt:NetStatusEvent):void {
if(evt.info.code == "NetStream.Play.Complete")
{
	trace("startando denovo");
	debug.text = "Completado";
	//doStream();
}
}
...

 

 

Na função handlerNetStreamStatus, onde eu filtro o evento procurando por NetStream.Play.Complete, é onde está o problema... esse resultado nunca chega, por mais que o vídeo já tenha completado. Para fins de testes, eu coloquei outras expressões contidas no manual online da Adobe, como NetStream.Buffer.Full por exemplo, e funcionou, mas eu preciso saber se o vídeo está completado para dar "play" novamente, alguém pode me ajudar?

 

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Buenas gente!

 

Consegui fazer "atender" as minhas necessidades, mas acredito que não da forma como deveria ser...

Ao invés de NetStream.Play.Complete, eu usei NetStream.Play.Stop, usando a lógica que no final do arquivo ele dá um "stop".

Parece que a forma certa é criar uma classe, escrever as funções onMetaData e onPlayStatus e aí sim monitorar os eventos lançados e tratá-los. Parece que o "Complete" só funciona com algo parecido. Como não tinha tempo, deixei da forma que funcionou.

Postei o resultado aqui, caso alguém tenha um problema semelhante, mas se alguém souber a forma certa, eu tenho grande interesse em aprender.

 

Desde já grato.

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.