Videowiedergabe im Vollbildmodus

Flash Player 9 und höher, Adobe AIR 1.0 und höher

Flash Player und AIR ermöglichen Ihnen, eine Vollbildanwendung für Ihre Videowiedergabe zu erstellen, und unterstützen das Skalieren von Video zum Vollbild.

Bei AIR-Inhalt, der im Vollbildmodus auf dem Desktop ausgeführt wird, sind die Bildschirmschoner- und Energiesparoptionen des Systems während der Wiedergabe deaktiviert, bis der Videoeingang stoppt oder der Benutzer den Vollbildmodus beendet.

Ausführliche Informationen zur Verwendung des Vollbildmodus finden Sie unter Verwenden des Vollbildmodus .

Aktivieren des Vollbildmodus für Flash Player in einem Browser

Bevor Sie den Vollbildmodus für Flash Player in einem Browser implementieren können, aktivieren Sie ihn mithilfe der Veröffentlichungsvorlage für Ihre Anwendung. Vorlagen, die den Vollbildmodus zulassen, verfügen über <object> - und <embed> -Tags, die einen allowFullScreen -Parameter enthalten. Im folgenden Beispiel wird der allowFullScreen -Parameter in einem <embed> -Tag gezeigt.

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

Wählen Sie in Flash „Datei“ > „Einstellungen für Veröffentlichungen“ und im Dialogfeld „Einstellungen für Veröffentlichungen“ auf der Registerkarte „HTML“ die Vorlage „Nur Flash - Vollbild zulassen“.

Stellen Sie in Flex sicher, dass die HTML-Vorlage <object> - und <embed> -Tags enthält, die den Vollbildmodus unterstützen.

Initiieren des Vollbildmodus

Wenn Flash Player-Inhalt in einem Browser ausgeführt wird, initiieren Sie den Vollbildmodus in Reaktion auf einen Mausklick oder einen Tastendruck. Sie können den Vollbildmodus zum Beispiel aufrufen, wenn der Benutzer auf eine mit „Vollbild“ beschriftete Schaltfläche klickt oder einen entsprechenden Befehl im Kontextmenü auswählt. Fügen Sie dem Objekt, bei dem die Aktion erfolgt, einen Ereignis-Listener hinzu, um auf die Benutzeraktion zu reagieren. Mit dem folgenden Code wird einer Schaltfläche, mit der der Benutzer in den Vollbildmodus wechseln kann, ein Ereignis-Listener hinzugefügt:

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

Der Code initiiert den Vollbildmodus, indem die Stage.displayState -Eigenschaft auf StageDisplayState.FULL_SCREEN eingestellt wird. Dieser Code skaliert die gesamte Bühne zum Vollbild, wobei das Video proportional zum Platz, den es auf der Bühne einnimmt, skaliert wird.

Mit der fullScreenSourceRect -Eigenschaft können Sie einen bestimmten Bereich der Bühne zum Vollbild skalieren. Definieren Sie zunächst das Rechteck, das Sie zum Vollbild skalieren möchten. Weisen Sie es dann der Stage.fullScreenSourceRect -Eigenschaft zu. Mit dieser Version der fullScreenButtonHandler() -Funktion werden zwei zusätzliche Codezeilen hinzugefügt, die das Video zum Vollbild skalieren.

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

In diesem Beispiel wird zwar eine Ereignisprozedur als Reaktion auf einen Mausklick ausgelöst, die Technik zum Aktivieren des Vollbildmodus ist in Flash Player und AIR jedoch identisch. Definieren Sie das Rechteck, das Sie skalieren möchten, und stellen Sie dann die Stage.displayState -Eigenschaft ein. Weitere Informationen finden Sie im Handbuch ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform .

Im nachstehenden vollständigen Beispiel wird Code hinzugefügt, mit dem die Verbindung erstellt wird und das NetStream-Objekt für das Video mit dem Abspielen beginnt.

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

Die onMetaData() -Funktion ist eine Rückruffunktion für die Verarbeitung von Videometadaten, sofern diese vorhanden sind. Eine Rückruffunktion ist eine Funktion, die die Laufzeitumgebung als Reaktion auf ein bestimmtes Vorkommnis oder Ereignis aufruft. In diesem Beispiel ist die onMetaData() -Funktion ein Teil, das die Anforderungen zum Bereitstellen der Funktion erfüllt. Weitere Informationen finden Sie unter Schreiben von Rückrufmethoden für Metadaten und Cue-Points .

Beenden des Vollbildmodus

Ein Benutzer kann den Vollbildmodus mit bestimmten Tastaturbefehlen, zum Beispiel mit der Escape-Taste, beenden. In ActionScript können Sie den Vollbildmodus beenden, indem Sie die Stage.diplayState -Eigenschaft auf StageDisplayState.NORMAL setzen. Mit dem Code im folgenden Beispiel wird der Vollbildmodus beendet, wenn das NetStream.Play.Stop netStatus -Ereignis eintritt.

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

Vollbild-Hardwarebeschleunigung

Wenn Sie einen rechteckigen Bereich der Bühne zum Vollbild skalieren, verwenden Flash Player und AIR die Hardwarebeschleunigung, sofern diese verfügbar und aktiviert ist. Die Laufzeitumgebung verwendet den Grafikadapter des Computers, um die Skalierung des Videos oder eines Teils der Bühne zum Vollbild zu beschleunigen. Unter diesen Bedingungen können Flash Player-Anwendungen häufig davon profitieren, wenn von der Video-Klasse (oder Camera-Klasse, nur ab Version 11.4/AIR 3.4) zur StageVideo-Klasse gewechselt wird.

Weitere Informationen zur Hardwarebeschleunigung im Vollbildmodus finden Sie unter Verwenden des Vollbildmodus . Weitere Informationen zu StageVideo finden Sie unter Verwenden der StageVideo-Klasse für die hardwarebeschleunigte Darstellung .