Video afspelen in de modus Volledig scherm

Flash Player 9 of hoger, Adobe AIR 1.0 of hoger

Met Flash Player en AIR kunt u een toepassing in volledig scherm maken voor het afspelen van video's. Beide toepassingen bieden ook ondersteuning voor het schalen van video's naar het volledige scherm.

Voor AIR-inhoud die in de modus Volledig scherm op het bureaublad wordt uitgevoerd, zijn de schermbeveiligings- en energiebesparingsopties uitgeschakeld tijdens het afspelen van video-inhoud. Dit blijft zo totdat de video stopt of de modus Volledig scherm wordt gesloten.

ZieWerken met de modus Volledig scherm voor alle informatie over het gebruik van de modus Volledig scherm.

Modus Volledig scherm inschakelen voor Flash Player in een browser

Voordat u de modus Volledig scherm kunt implementeren voor Flash Player in een browser, moet u deze voor uw toepassing inschakelen via de sjabloon Publish. Sjablonen die een volledig scherm mogelijk maken, bevatten <object>- en <embed>-tags die zijn voorzien van de parameter allowFullScreen. In het volgende voorbeeld ziet u de parameter allowFullScreen in de tag <embed>.

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

In Flash selecteert u eerst Bestand -> Publicatie-instellingen en vervolgens de sjabloon Alleen Flash - volledig scherm toestaan op het tabblad HTML van het dialoogvenster Publicatie-instellingen.

In Flex zorgt u dat de HTML-sjabloon is voorzien van <object>- en <embed>-tags die het volledige scherm ondersteunen.

De modus Volledig scherm starten

Voor Flash Player-inhoud die wordt uitgevoerd in een browser kunt u de modus Volledig scherm voor video starten als reactie op een muisklik of toetsdruk. U kunt bijvoorbeeld instellen dat de modus Volledig scherm wordt gestart wanneer de gebruiker klikt op de knop Volledig scherm of de opdracht Volledig scherm kiest in een contextmenu. Voeg een gebeurtenislistener toe aan het object waarop de actie wordt uitgevoerd, om te reageren op de gebruiker. De volgende code voegt een gebeurtenislistener toe aan een knop waarop de gebruiker klikt om de modus Volledig scherm te activeren:

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

De code start de modus Volledig scherm door de eigenschap Stage.displayState in te stellen op StageDisplayState.FULL_SCREEN. Deze code schaalt het volledige werkgebied naar het volledige scherm waarbij de video wordt geschaald in verhouding met de ruimte die deze inneemt in het werkgebied.

Met de eigenschap fullScreenSourceRect kunt u opgeven dat een bepaald gebied van het werkgebied moet worden geschaald naar het volledige scherm. Definieer eerst de rechthoek die u wilt schalen naar het volledige scherm. Wijs de rechthoek vervolgens toe aan de eigenschap Stage.fullScreenSourceRect. Deze versie van de functie fullScreenButtonHandler() voegt twee extra coderegels toe die alleen de video schalen naar het volledige scherm.

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

Hoewel in dit voorbeeld een gebeurtenishandler wordt aangeroepen als reactie op een muisklik, is de techniek voor het activeren van de modus Volledig scherm hetzelfde voor Flash Player en AIR. Definieer de rechthoek die u wilt schalen en stel vervolgens de eigenschap Stage.displayState in. Zie de Naslaggids voor ActionScript 3.0 voor het Adobe Flash-platform voor meer informatie.

In het volledige voorbeeld, dat hieronder volgt, is code toegevoegd die de verbinding en het NetStream-object voor de video maakt, en die de video begint af te spelen.

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

De functie onMetaData() is een callbackfunctie voor het afhandelen van videometagegevens, als deze aanwezig zijn. Een callbackfunctie is een functie die door de runtime wordt aangeroepen als reactie op een bepaald type gebeurtenis of optreden. In dit voorbeeld is de functie onMetaData()een stub die voldoet aan de vereisten om de functie te leveren. Zie Callbackmethoden schrijven voor metagegevens en actiepunten voor meer informatie.

Modus Volledig scherm beëindigen

Een gebruiker kan de modus Volledig scherm beëindigen met een van de sneltoetsen, zoals de Escape-toets. U beëindigt de modus Volledig scherm in ActionScript door de eigenschap Stage.displayState in te stellen op StageDisplayState.NORMAL. De code in het volgende voorbeeld beëindigt de modus Volledig scherm wanneer de NetStream.Play.Stop-gebeurtenis netStatus optreedt.

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

Hardwareversnelling voor volledig scherm

Wanneer een rechthoekig segment van het werkgebied wordt geschaald naar het volledige scherm, gebruikt Flash Player of AIR hardwareversnelling, op voorwaarde dat deze beschikbaar en ingeschakeld is. De runtime gebruikt de grafische kaart van de computer om het schalen van de video, of een deel van het werkgebied, naar het volledige scherm te versnellen. In deze omstandigheden kunnen Flash Player-toepassingen vaak hun voordeel halen uit het schakelen naar de StageVideo-klasse vanuit de Video-klasse (of Camera-klasse; Flash Player 11.4/AIR 3.4 en hoger).

Zie Werken met de modus Volledig scherm voor informatie over hardwareversnelling in de modus Volledig scherm. Zie De klasse StageVideo gebruiken voor presentatie met hardwareversnelling voor meer informatie over StageVideo.