Video afspelen

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

De klasse NetStream biedt vier hoofdmethoden waarmee u het afspelen van video kunt besturen:

pause() : onderbreekt het afspelen van een videostream. Wanneer de video al is gepauzeerd, heeft het aanroepen van deze methode geen effect.

resume() : hervat het afspelen van een gepauzeerde videostream. Wanneer de video al wordt afgespeeld, heeft het aanroepen van deze methode geen effect.

seek() : hiermee wordt het hoofdframe gezocht dat zich het dichtst bij de opgegeven locatie bevindt (een verschuiving in seconden vanaf het begin van de stream).

togglePause() : onderbreekt of hervat het afspelen van een videostream.

Opmerking: Er is geen methode stop() . Wanneer u een stream wilt stoppen, moet u het afspelen pauzeren en zoeken tot het begin van de videostream.
Opmerking: Met de methode play() wordt het afspelen niet hervat. Deze methode wordt gebruikt om videobestanden te laden.

In het volgende voorbeeld ziet u hoe u een video kunt besturen met verschillende knoppen. Maak een nieuw document en voeg vier knopinstanties ( pauseBtn , playBtn , stopBtn en togglePauseBtn ) aan het werkgebied toe om het volgende voorbeeld uit te voeren:

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

Wanneer u tijdens het afspelen van de video op de knopinstantie pauseBtn klikt, wordt het videobestand gepauzeerd. Wanneer de video al is gepauzeerd, heeft het klikken op deze knop geen effect. Wanneer u op de knopinstantie playBtn klikt, wordt het afspelen hervat als het afspelen was gepauzeerd; anders heeft het klikken op deze knop geen effect.

Einde van een videostream detecteren

Als u naar het begin en einde van een videostream wilt luisteren, moet u een gebeurtenislistener aan de NetStream-instantie toevoegen om naar de gebeurtenis netStatus te luisteren. In de volgende code ziet u hoe u naar verschillende codes kunt luisteren tijdens het afspelen van video:

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

De bovenstaande code genereert de volgende uitvoer:

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

De twee codes waarnaar u specifiek wilt luisteren, zijn ‘NetStream.Play.Start’ en ‘NetStream.Play.Stop’, die het begin en het einde van het afspelen van de video aangeven. In het volgende fragment wordt de instructie switch gebruikt om deze twee codes te filteren en een bericht weer te geven:

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

Wanneer u naar de gebeurtenis netStatus ( NetStatusEvent.NET_STATUS ) luistert, kunt u een videospeler maken die de volgende video in een afspeellijst laadt zodra de huidige video klaar is met afspelen.