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.