Video oynatımını denetleme

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

NetStream sınıfı, video oynatımının denetlenmesine yönelik dört ana yöntem sunar:

pause() : Bir video akışının oynatılmasını duraklatır. Video zaten duraklatılmışsa, bu yöntemin çağrılması herhangi bir işlem gerçekleştirmez.

resume() : Duraklatılan bir video akışının oynatılmasını kaldığı yerden devam ettirir. Video zaten oynatılıyorsa, bu yöntemin çağrılması herhangi bir işlem gerçekleştirmez.

seek() : Belirtilen konuma (akışın başından itibaren saniye cinsinden uzaklık) en yakın olan anahtar kareyi arar.

togglePause() : Akışın oynatılmasını duraklatır veya kaldığı yerden devam ettirir.

Not: Herhangi bir stop() yöntemi yoktur. Bir akışı durdurmak için, oynatmayı duraklatmanız ve video akışının başını aramanız gerekir.
Not: play() yöntemi oynatmayı yeniden başlatmaz, video dosyalarının yüklenmesi için kullanılır.

Aşağıdaki örnek, birçok farklı düğme kullanılarak videonun nasıl denetlendiğini gösterir. Şu örneği çalıştırmak için, yeni bir belge oluşturun ve çalışma alanına dört düğme örneği ( pauseBtn , playBtn , stopBtn ve togglePauseBtn ) ekleyin:

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(); 
}

Video oynatılırken pauseBtn düğme örneğinin tıklatılması, video dosyasının duraklatılmasına neden olur. Video zaten duraklatılmışsa, bu düğme herhangi bir etki oluşturmaz. playBtn düğme örneğinin tıklatılması, oynatma önceden duraklatılmışsa, video oynatımını yeniden başlatır; aksi takdirde video zaten oynatılıyorsa herhangi bir etki oluşturmaz.

Video akışının sonunu algılama

Video akışının başını ve sonunu dinlemek için, NetStream örneğine bir olay dinleyicisi ekleyerek netStatus olayını dinlemeniz gerekir. Aşağıdaki kod, video oynatımı sırasında çeşitli kodların nasıl dinleneceğini gösterir:

ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler); 
function statusHandler(event:NetStatusEvent):void 
{ 
    trace(event.info.code) 
}

Önceki kod, şu çıktıyı oluşturur:

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

Özellikle dinlemek istediğiniz iki kod, video oynatımının başını ve sonunu bildiren “NetStream.Play.Start” ve “NetStream.Play.Stop” kodlarıdır. Aşağıdaki kod parçası, bu iki koda filtre uygulamak ve bir mesajı izlemek için bir anahtar deyimini kullanır:

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; 
    } 
}

netStatus olayını ( NetStatusEvent.NET_STATUS ) dinleyerek, geçerli video oynatımı bittikten sonra bir sonraki videoyu oynatma listesine yükleyen bir video oynatıcısı oluşturabilirsiniz.