I klassen NetStream finns fyra huvudmetoder för styrning av videouppspelning:
pause()
: Pausar uppspelningen av ett videoflöde. Om videon redan är pausad när du anropar metoden händer ingenting.
resume()
: Återupptar uppspelningen av ett pausat videoflöde. Om videoklippet redan spelas upp när du anropar metoden händer ingenting.
seek()
: Söker efter nyckelbildrutan som är närmast den angivna platsen (en förskjutning i sekunder från direktuppspelningens början).
togglePause()
: Pausar eller återupptar uppspelningen av ett videoflöde.
Obs!
Det finns ingen
stop()
-metod. För att stoppa direktuppspelningen måste du pausa uppspelningen och söka efter början av videoflödet.
Obs!
Det går inte att återuppta uppspelningen med
play()
-metoden, den används för inläsning av videofiler.
I följande exempel visas hur du styr en video med flera olika knappar. För att köra följande exempel skapar du ett nytt dokument och lägger till fyra knappinstanser på din arbetsyta (
pauseBtn
,
playBtn
,
stopBtn
och
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();
}
Om du klickar på
pauseBtn
-knappen när videon spelas upp pausas videofilen. Om videon redan har pausats händer ingenting när du klickar på knappen. Om du klickar på
playBtn
-knappen återtas videouppspelningen om den var pausad tidigare, annars händer ingenting om videon redan håller på att spelas upp.
Identifiera slutet av ett videoflöde
För att kunna avlyssna början och slutet i ett videoflöde, måste du lägga till en händelseavlyssnare i NetStream-instansen som ska avlyssna
netStatus
-händelsen. I följande kod visas hur de olika koderna avlyssnas i videouppspelningen:
ns.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
function statusHandler(event:NetStatusEvent):void
{
trace(event.info.code)
}
Den föregåenden koden genererar följande utdata:
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 två koder som du speciellt vill avlyssna är ”NetStream.Play.Start” och ”NetStream.Play.Stop", vilka signalerar början och slutet av en videouppspelning. I följande kodutdrag används en switch-programsats för att filtrera de här två koderna och spåra ett meddelande:
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;
}
}
Genom att avlyssna
netStatus
-händelsen (
NetStatusEvent.NET_STATUS
), kan du skapa en videospelare som läser in nästa video i en spelningslista när uppspelningen av den aktuella videon har slutat.