Riproduzione di video nella modalità a schermo intero

Flash Player 9 e versioni successive, Adobe AIR 1.0 e versioni successive

Flash Player e AIR consentono di creare un'applicazione a schermo intero per la riproduzione di video e supportano il ridimensionamento dei video a schermo intero.

Per il contenuto AIR eseguito in modalità a schermo intero sul desktop, le opzioni di sistema relative allo screen saver e al risparmio energetico sono disabilitate durante la riproduzione, fino a quando l'input del video viene arrestato o l'utente esce dalla modalità a schermo intero.

Per informazioni dettagliate esaustive sull'uso della modalità a schermo intero, vedete Uso della modalità a schermo intero.

Abilitazione della modalità a schermo intero per Flash Player in un browser

Per implementare la modalità a schermo intero per Flash Player in un browser, occorre innanzitutto abilitarla tramite il modello Publish dell'applicazione. I modelli che consentono l'uso dello schermo intero includono i tag <object> e <embed> che contengono un parametro allowFullScreen. L'esempio seguente mostra il parametro allowFullScreen in un 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, selezionate File -> Impostazioni di pubblicazione e quindi scegliete il modello Solo Flash - Consenti schermo intero nella scheda HTML della finestra di dialogo Impostazioni di pubblicazione.

In Flex accertatevi che il modello HTML includa i tag <object> e <embed> che supportano lo schermo intero.

Avvio della modalità a schermo intero

Per il contenuto Flash Player eseguito in un browser, la modalità a schermo intero per il video viene avviata in risposta al clic del mouse o alla pressione di un tasto. Ad esempio, potete attivare la modalità a schermo intero quando l'utente fa clic su un pulsante con etichetta Schermo intero o quando seleziona un comando Schermo intero da un menu di scelta rapida. Per rispondere all'utente, aggiungete un listener di eventi all'oggetto su cui si verifica l'azione. Il codice seguente aggiunge un listener di eventi a un pulsante selezionato dall'utente per attivare la modalità a schermo intero:

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

Nel codice la modalità a schermo intero viene avviata impostando la proprietà Stage.displayState su StageDisplayState.FULL_SCREEN. Questo codice consente adattare le dimensioni di tutto lo stage allo schermo intero, ridimensionando il video in proporzione allo spazio occupato sullo stage.

La proprietà fullScreenSourceRect consente di specificare una particolare area dello stage per ridimensionarla allo schermo intero. Innanzitutto, definite il rettangolo da ridimensionare allo schermo intero. Quindi, assegnate questo rettangolo alla proprietà Stage.fullScreenSourceRect. Questa versione della funzione fullScreenButtonHandler() aggiunge due ulteriori righe di codice che consentono di ridimensionare solo il video per adattarlo allo schermo intero.

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

Sebbene in questo esempio venga richiamato un gestore eventi in risposta a un clic del mouse, la tecnica di passaggio allo schermo intero è la stessa per Flash Player e AIR. Definite il rettangolo da ridimensionare, quindi impostate la proprietà Stage.displayState. Per ulteriori informazioni, vedete la Guida di riferimento di Adobe ActionScript 3.0 per la piattaforma Adobe Flash.

L'esempio completo, riportato di seguito, aggiunge il codice che consente di creare la connessione e l'oggetto NetStream per il video e di avviare la riproduzione.

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

La funzione di callback onMetaData() è usata per gestire gli eventuali metadati video esistenti. Una funzione di callback è una funzione chiamata dal runtime in risposta a qualche tipo di occorrenza o evento. In questo esempio, la funzione onMetaData()è uno stub che soddisfa il requisito per fornire la funzione. Per ulteriori informazioni, vedete Scrittura di metodi di callback per metadati e cue point

Uscita dalla modalità a schermo intero

Un utente può chiudere la modalità a schermo intero premendo uno dei tasti di scelta rapida, ad esempio il tasto Esc. Potete uscire dalla modalità a schermo intero in ActionScript impostando la proprietà Stage.diplayState su StageDisplayState.NORMAL. Il codice nell'esempio seguente consente di chiudere la modalità a schermo intero quando si verifica l'evento netStatus di NetStream.Play.Stop.

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

Accelerazione hardware per lo schermo intero

Quando modificate di nuovo in scala un'area rettangolare dello stage nella modalità a schermo intero, Flash Player o AIR utilizzano l'accelerazione hardware, se disponibile e abilitata. Il runtime usa la scheda video del computer per velocizzare il ridimensionamento del video, o di una parte dello stage, alle dimensioni a schermo intero. In queste circostanze, le applicazioni Flash Player posso spesso sfruttare il passaggio alla classe StageVideo dalla classe Video (o dalla classe Camera, in Flash Player 11.4/AIR 3.4 e versioni successive).

Per ulteriori informazioni sull'accelerazione hardware in modalità a schermo intero, vedete Uso della modalità a schermo intero. Per ulteriori informazioni sulla classe StageVideo, vedete Utilizzo della classe StageVideo per la presentazione con accelerazione hardware.