Controle da reprodução de vídeoFlash Player 9 e posterior, Adobe AIR 1.0 e posterior A classe NetStream oferece quatro principais métodos para controlar a reprodução de vídeos: pause(): pausa a reprodução de um vídeo em fluxo contínuo. Se o vídeo já estiver pausado, chamar este método não terá efeito. resume(): reinicia a reprodução de um vídeo em fluxo contínuo que foi suspenso. Se o vídeo já estiver em reprodução, chamar este método não terá efeito. seek(): busca o quadro-chave mais próximo do local especificado (um deslocamento, em segundos, a partir do início do fluxo). togglePause(): pausa ou reinicia a reprodução de um fluxo contínuo. Nota: Não há um método stop(). Para interromper um fluxo, você deve pausar a reprodução e fazer a busca até o início do fluxo de vídeo.
Nota: O método play() não reinicia a reprodução; ele é usado para carregar arquivos de vídeo.
O exemplo a seguir demonstra como controlar um vídeo usando vários botões diferentes. Para executar o exemplo, crie um novo documento e adicione quatro ocorrências de botão ao seu espaço de trabalho (pauseBtn, playBtn, stopBtn e togglePauseBtn): var nc:NetConnection = new NetConnection(); nc.connect(null); var ns:NetStream = new NetStream(nc); ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); ns.play("video.flv"); function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore error } var vid:Video = new Video(); vid.attachNetStream(ns); addChild(vid); pauseBtn.addEventListener(MouseEvent.CLICK, pauseHandler); playBtn.addEventListener(MouseEvent.CLICK, playHandler); stopBtn.addEventListener(MouseEvent.CLICK, stopHandler); togglePauseBtn.addEventListener(MouseEvent.CLICK, togglePauseHandler); function pauseHandler(event:MouseEvent):void { ns.pause(); } function playHandler(event:MouseEvent):void { ns.resume(); } function stopHandler(event:MouseEvent):void { // Pause the stream and move the playhead back to // the beginning of the stream. ns.pause(); ns.seek(0); } function togglePauseHandler(event:MouseEvent):void { ns.togglePause(); } Quando você clica na ocorrência do botão pauseBtn durante a reprodução do vídeo, o arquivo de vídeo é pausado. Se o vídeo já estiver pausado, clicar neste botão não terá efeito. Clicar na ocorrência do botão playBtn reinicia a reprodução do vídeo se a reprodução foi pausada anteriormente; caso contrário, o botão não terá efeito se o vídeo já estiver sendo reproduzido. Detecção do final de um fluxo de vídeoPara monitorar o começo ou o final de um fluxo de vídeo, você precisa adicionar um ouvinte de eventos à ocorrência de NetStream para monitorar o evento netStatus. O seguinte código demonstra como monitorar os diversos códigos durante a reprodução do vídeo: ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); function statusHandler(event:NetStatusEvent):void { trace(event.info.code) } O código anterior gera a seguinte saída: NetStream.Play.Start NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Empty NetStream.Buffer.Full NetStream.Buffer.Flush NetStream.Play.Stop NetStream.Buffer.Empty NetStream.Buffer.Flush Os dois códigos que você deseja monitorar especificamente são “NetStream.Play.Start” e “NetStream.Play.Stop”, que sinalizam o início e o fim da reprodução do vídeo. O seguinte snippet usa uma instrução de opção para filtrar esses dois códigos e rastrear uma mensagem: function statusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetStream.Play.Start": trace("Start [" + ns.time.toFixed(3) + " seconds]"); break; case "NetStream.Play.Stop": trace("Stop [" + ns.time.toFixed(3) + " seconds]"); break; } } Ao monitorar o evento netStatus (NetStatusEvent.NET_STATUS), você pode criar um player de vídeo que carregue o próximo vídeo de uma lista de exibição depois que a reprodução do vídeo atual for concluída. |
![]() |