Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou usando um player flv em meu site que foi feito baseado no tutorial do iMasters (http://imasters.com.br/artigo/3808/flash/criando_um_videoplayer_de_flv_no_flash_parte_2/) e nele tem o seguinte código:
//este if server para verificar se o filme ja acabou, rebobinando o mesmo...
if(info.code == "NetStream.Buffer.Flush"){
netStmVideo.play(videoAtual);
stopVideo();
}
Adicionei algumas coisas dentro desse if para acontecer quando o vídeo terminar, só que alguns segundos finais do vídeo sempre são cortados, normalmente o vídeo encerra 5 segundos antes, a solução que tenho usado é adicionar 5 segundos a mais no vídeo sem conteúdo nenhum, mas gostaria de uma solução no próprio código para não ter que ficar editando cada vídeo que preciso colocar, alguém tem alguma ideia de como resolver isso?
Obrigado
Não funcionou =/
segue o AS completo:
//configuração do palco...
//não necessário, fica a gosto...
Stage.align = "MC";
Stage.scaleMode = "noScale";
fscommand("allowscale", "false");
fscommand("fullscreen", "false");
_quality = "BEST";var display:Video;
var videoAtual:String = null;
var tempoAtual:Number = 0;
var isPlay:Boolean = false;var mcVolumeControl:MovieClip;
var btPlayPause:MovieClip;
var btStop:MovieClip;var netConVideo:NetConnection = new NetConnection();
netConVideo.connect(null);if(info.code == "NetStream.Buffer.Flush"){
netStmVideo.play(videoAtual);
stopVideo();
}
}if(videoAtual != src){
netStmVideo.play(src);netStmVideo.seek(0);
}btPlayPause.gotoAndStop(2);
isPlay = true;
}tempoAtual = netStmVideo.time - 10;
netStmVideo.pause(true);
isPlay = false;isPlay = true;
netStmVideo.pause(false);
}
}tempoAtual = 0;
netStmVideo.seek(0);
netStmVideo.pause(true);
isPlay = false;btPlayPause.gotoAndStop(1);
}btStop.onRelease = stopVideo;
btPlayPause.onRelease = function():Voidif(isPlay && this._currentframe == 2){
this.gotoAndStop(1);this.gotoAndStop(2);
}PlayPause();
}Será que não tem como fazer algum esquema com setInterval?
Sabe qual seu erro?
É que flush pode ser chamado a qualquer hora em um player... basta que por algum motivo o computador limpe a memoria rapida.
E ai causa isso que você falou
O correto é assim:
function netStatusHandler(event:NetStatusEvent):void {
trace(event.info.code);
switch (event.info.code) {
case "NetConnection.Connect.Success":
//Ponha sua função de inicialização do play aqui
break;
case "NetStream.Play.StreamNotFound":
traace("Stream not found");
break;
case 'NetStream.Play.Stop':
//video finished
break;
case 'NetStream.Buffer.Flush' :
// your video is done playing
break;
case 'NetStream.Seek.Notify' :
//Look seek
break;
}
}
Isso ai é uma chamada em AS 3.0
Veja ai como foi feita em AS 2.0 ;)
E coloque as outras propriedades
Funciona perfeitamente bem.
Vide o player do http://www.adorocinema.com
Abraços
Opa, agora funcionou :)
Mas na verdade só troquei o NetStream.Buffer.Flush do if pelo NetStream.Play.Stop que você postou nesse outro exemplo, ficou perfeito.
Mto obrigado aos dois.
>
Olá, estou usando um player flv em meu site que foi feito baseado no tutorial do iMasters (http://imasters.com.br/artigo/3808/flash/criando_um_videoplayer_de_flv_no_flash_parte_2/) e nele tem o seguinte código:
//este if server para verificar se o filme ja acabou, rebobinando o mesmo...
Adicionei algumas coisas dentro desse if para acontecer quando o vídeo terminar, só que alguns segundos finais do vídeo sempre são cortados, normalmente o vídeo encerra 5 segundos antes, a solução que tenho usado é adicionar 5 segundos a mais no vídeo sem conteúdo nenhum, mas gostaria de uma solução no próprio código para não ter que ficar editando cada vídeo que preciso colocar, alguém tem alguma ideia de como resolver isso?
Obrigado
Oba, suables?
Faz assim, primeiro instancia o seu player de my_FLVPlybk.
E cria uma action com esse código:
my_FLVPlybk.addEventListener("stopped",listenerObject);Se funcionar de um sorriso de orelha a orelha...senão posta aki de novo que ajudaremos! \o/;)