Spela upp video i helskärmsläge

Flash Player 9 och senare, Adobe AIR 1.0 och senare

Med Flash Player och AIR kan du skapa ett helskärmsprogram för videouppspelning, med stöd för videoskalning till helskärm.

För AIR-innehåll som körs i helskärmsläge på skrivbordet är systemets skärmsläckare och energisparalternativ inaktiverade under uppspelningen tills videoindata upphör eller användaren avbryter helskärmsläget.

Mer information om hur du använder helskärmsläget finns i avsnittet Arbeta i helskärmsläge .

Aktivera helskärmsläget för Flash Player i en webbläsare

Innan du kan implementera helskärmsläge för Flash Player i en webbläsare måste du aktivera det via programmets publiceringsmall. Mallarna som använder helskärmsläge omfattar <object> - och <embed> -taggar som innehåller en allowFullScreen -parameter. I följande exempel visas allowFullScreen -parametern i en <embed> -tagg.

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
    id="fullScreen" width="100%" height="100%" 
    codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"> 
    ... 
    <param name="allowFullScreen" value="true" /> 
    <embed src="fullScreen.swf" allowFullScreen="true" quality="high" bgcolor="#869ca7" 
        width="100%" height="100%" name="fullScreen" align="middle" 
        play="true" 
        loop="false" 
        quality="high" 
        allowScriptAccess="sameDomain" 
        type="application/x-shockwave-flash" 
        pluginspage="http://www.adobe.com/go/getflashplayer"> 
    </embed> 
    ... 
</object>

Välj Arkiv -> Publiceringsinställningar i Flash och välj sedan mallen Endast Flash - Tillåt helskärm på fliken HTML i dialogrutan Publiceringsinställningar.

I Flex ser du till att HTML-mallen omfattar <object> - och <embed> -taggarna som stöder helskärm.

Initiera helskärmsläge

När det gäller Flash Player-innehåll som körs i en webbläsare aktiverar du helskärmsläget för video som svar på en musklickning eller tangenttryckning. Du kan till exempel initiera helskärmsläget när användaren klickar på en knapp med etiketten Helskärm eller väljer kommandot Helskärm på snabbmenyn. Om du vill svara användaren lägger du till en händelseavlyssnare i objektet som åtgärden utförs på. Följande kod lägger till en händelseavlyssnare för en knapp som användaren klickar på för att aktivera helskärmsläget:

var fullScreenButton:Button = new Button(); 
fullScreenButton.label = "Full Screen"; 
addChild(fullScreenButton); 
fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenButtonHandler); 
 
function fullScreenButtonHandler(event:MouseEvent) 
{ 
    stage.displayState = StageDisplayState.FULL_SCREEN;     
 
}

Koden initierar helskärmsläge genom att Stage.displayState -egenskapen tilldelas värdet StageDisplayState.FULL_SCREEN . Den här koden skalar hela scenen till helskärm med videoskalningen i förhållande till utrymmet som upptas på scenen.

Med egenskapen fullScreenSourceRect kan du ange att ett visst område på scenen ska skalas till helskärm. Först definierar du rektangeln som du vill skala till helskärm. Tilldela den sedan till egenskapen Stage.fullScreenSourceRect . Den här versionen av funktionen fullScreenButtonHandler() lägger till två extra kodrader som skalar enbart videon till helskärm.

private function fullScreenButtonHandler(event:MouseEvent) 
{ 
    var screenRectangle:Rectangle = new Rectangle(video.x, video.y, video.width, video.height); 
    stage.fullScreenSourceRect = screenRectangle; 
    stage.displayState = StageDisplayState.FULL_SCREEN; 
}

I det här exemplet anropas en händelsehanterare som svar på en musklickning, men tekniken för att övergå till helskärmsläge är samma för både Flash Player och AIR. Definiera rektangeln som du vill skapa och ställ sedan in egenskapen Stage.displayState . Mer information finns i Referenshandbok för ActionScript 3.0 i Adobe Flash-plattformen .

Det fullständiga exemplet, som följer, lägger till kod som skapar anslutningen och NetStream-objektet för videon och börjar spela upp den.

package 
{ 
    import flash.net.NetConnection; 
    import flash.net.NetStream; 
    import flash.media.Video; 
    import flash.display.StageDisplayState; 
    import fl.controls.Button; 
    import flash.display.Sprite; 
    import flash.events.MouseEvent; 
    import flash.events.FullScreenEvent; 
    import flash.geom.Rectangle; 
     
    public class FullScreenVideoExample extends Sprite 
    {     
        var fullScreenButton:Button = new Button(); 
        var video:Video = new Video(); 
 
        public function FullScreenVideoExample() 
        { 
            var videoConnection:NetConnection = new NetConnection(); 
            videoConnection.connect(null); 
             
            var videoStream:NetStream = new NetStream(videoConnection); 
            videoStream.client = this; 
 
            addChild(video); 
             
            video.attachNetStream(videoStream); 
             
            videoStream.play("http://www.helpexamples.com/flash/video/water.flv"); 
             
            fullScreenButton.x = 100; 
            fullScreenButton.y = 270; 
            fullScreenButton.label = "Full Screen"; 
            addChild(fullScreenButton); 
            fullScreenButton.addEventListener(MouseEvent.CLICK, fullScreenButtonHandler); 
        } 
 
        private function fullScreenButtonHandler(event:MouseEvent) 
        {  
            var screenRectangle:Rectangle = new Rectangle(video.x, video.y, video.width, video.height); 
            stage.fullScreenSourceRect = screenRectangle; 
            stage.displayState = StageDisplayState.FULL_SCREEN;  
        }     
         
        public function onMetaData(infoObject:Object):void 
        { 
            // stub for callback function 
        } 
    } 
}

Funktionen onMetaData() är en callback-funktion som hanterar videometadata, om sådana finns. En callback-funktion är en funktion som körtidsbiblioteket anropar som svar på någon typ av förekomst eller händelse. I det här exemplet är funktionen onMetaData() en stub som innehåller det som krävs för att ange funktionen. Mer information finns i Skriva callback-metoder för metadata och referenspunkter

Lämna helskärmsläge

En användare kan lämna helskärmsläget med något av kortkommandona, till exempel Esc-tangenten. Du kan avbryta helskärmsläget i ActionScript genom att ge Stage.diplayState -egenskapen värdet StageDisplayState.NORMAL . Koden i följande exempel avbryter helskärmsläget när händelsen NetStream.Play.Stop netStatus inträffar.

videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); 
 
private function netStatusHandler(event:NetStatusEvent) 
{ 
    if(event.info.code == "NetStream.Play.Stop") 
        stage.displayState = StageDisplayState.NORMAL; 
}

Maskinvaruacceleration i helskärmsläge

När du skalar om ett rektangulärt område av scenen till helskärmsläge används maskinvaruacceleration i Flash Player eller AIR om det är tillgängligt och aktiverat. Körningsmiljön använder datorns bildskärmskort så att det ska gå snabbare att skala videon, eller en del av scenen, till helskärmsstorlek. Under sådana förhållanden kan det vara en fördel att för FlashPlayer-program använda klassen StageVideo istället för klassen Video (eller Camera, i Flash Player 11.4/AIR 3.4 och senare).

Mer information om maskinvaruacceleration i helskärmsläge finns i avsnittet Arbeta i helskärmsläge . Mer information om StageVideo finns i Använda klassen StageVideo för maskinvaruaccelererad presentation .