Steuern der Videowiedergabe

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Die NetStream-Klasse enthält vier Hauptklassen zur Steuerung der Videowiedergabe:

pause() : Hält die Wiedergabe eines Videostreams an. Ist die Wiedergabe bereits angehalten, hat der Aufruf dieser Methode keine Auswirkungen.

resume() : Setzt die Wiedergabe eines angehaltenen Videostreams fort. Läuft die Wiedergabe bereits, hat der Aufruf dieser Methode keine Auswirkungen.

seek() : Sucht das Schlüsselbild, das der angegebenen Position am nächsten kommt (ein Offset in Sekunden ab dem Beginn des Streams).

togglePause() : Hält die Wiedergabe eines Streams an oder setzt sie fort.

Hinweis: Es gibt keine stop() -Methode. Um einen Stream zu stoppen, müssen Sie in die Wiedergabe anhalten und nach dem Anfang des Video-Streams suchen.
Hinweis: Die play() -Methode setzt die Wiedergabe nicht fort, sie wird stattdessen zum Laden von Videodateien verwendet.

Im folgenden Beispiel wird veranschaulicht, wie Sie ein Video mit zwei Schaltflächen steuern können. Um das folgende Beispiel auszuführen, erstellen Sie ein neues Dokument, und fügen Sie im Arbeitsbereich vier Schaltflächeninstanzen ein ( pauseBtn , playBtn , stopBtn und 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(); 
}

Durch Klicken auf die Schaltflächeninstanz pauseBtn während der Videowiedergabe wird die Videodatei angehalten. Ist die Wiedergabe bereits angehalten, hat das Klicken auf diese Schaltfläche keine Auswirkungen. Durch Klicken auf die Schaltflächeninstanz playBtn wird die Videowiedergabe fortgesetzt, wenn sie zuvor angehalten wurde, andernfalls (wenn das Video bereits wiedergegeben wird) hat das Klicken auf diese Schaltfläche keine Auswirkungen.

Erfassen des Endes eines Video-Streams

Um den Anfang und das Ende eines Video-Streams zu überwachen, müssen Sie der NetStream-Instanz einen Ereignis-Listener hinzufügen, der das Auftreten eines netStatus -Ereignisses überwacht. Im folgenden Code wird veranschaulicht, wie während der Videowiedergabe das Auftreten verschiedener Codes überwacht wird:

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

Mit dem vorangegangenen Code wird die folgende Ausgabe erzeugt:

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

Die zwei Ereignisse, deren Auftreten Sie überwachen, sind NetStream.Play.Start und NetStream.Play.Stop, die den Anfang bzw. das Ende der Videowiedergabe kennzeichnen. Im folgenden Codeausschnitt werden diese beiden Codes mit einer switch-Anweisung gefiltert und eine Nachricht gesendet:

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

Durch Überwachen des netStatus -Ereignisses ( NetStatusEvent.NET_STATUS ) können Sie einen Videoplayer erstellen, der das nächste Video in einer Wiedergabeliste lädt, wenn die Wiedergabe der aktuellen Videodatei beendet ist.