Flash Player 和 AIR 可以讓您為視訊播放建立全螢幕應用程式,並支援將視訊放大為全螢幕。
對於在桌上型電腦全螢幕模式下執行的 AIR 內容,系統的螢幕保護程式和省電選項會在播放期間停用,直到視訊輸入停止或使用者結束全螢幕模式為止。
如需有關使用全螢幕模式的完整詳細資訊,請參閱
使用全螢幕模式
。
為瀏覽器中的 Flash Player 啟用全螢幕模式
您必須先透過「發佈」範本,為應用程式啟用全螢幕模式,瀏覽器中的 Flash Player 才能使用全螢幕模式。允許全螢幕的範本包括內含
allowFullScreen
參數的
<object>
和
<embed>
標籤。下列範例會顯示
<embed>
標籤中的
allowFullScreen
參數。
<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>
在 Flash 中選取「檔案 > 發佈設定」,然後在「發佈設定」對話方塊的「HTML」索引標籤上,選取「僅限 Flash - 允許全螢幕」範本。
在 Flex 中,確認 HTML 範本包含支援全螢幕的
<object>
和
<embed>
標籤。
起始全螢幕模式
對於在瀏覽器中執行的 Flash Player 內容,按下滑鼠或按鍵都可以為視訊啟動全螢幕模式。例如,您可以在使用者按一下標示為「全螢幕」的按鈕時,或者從快顯選單選取「全螢幕」命令時,起始全螢幕模式。若要回應使用者,請將事件偵聽程式加入至發生動作的對象物件。在下列程式碼中,會將事件偵聽程式加入至按鈕,使用者按一下按鈕即可進入全螢幕模式:
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;
}
程式碼會將
Stage.displayState
屬性設定為
StageDisplayState.FULL_SCREEN
,以啟動全螢幕模式。其中程式碼會將整個舞台放大為全螢幕,並且調整視訊的縮放比例,使其佔據整個舞台。
fullScreenSourceRect
屬性可讓您指定要放大為全螢幕的特定舞台區域。首先,請定義您要放大為全螢幕的矩形區域。然後,再將它指定給
Stage.fullScreenSourceRect
屬性。
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;
}
雖然這個範例會叫用事件處理常式以回應按滑鼠的動作,但 Flash Player 和 AIR 進入全螢幕的技巧是相同的。首先,定義您要縮放的矩形區域,然後設定
Stage.displayState
屬性。如需詳細資訊,請參閱
適用於 Adobe Flash Platform 的 ActionScript 3.0 參考
。
以下為完整的範例,當中加入了為視訊建立連線和 NetStream 物件並開始播放視訊的程式碼。
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
}
}
}
onMetaData()
是用於處理視訊中繼資料 (如果有的話) 的回呼函數。所謂回呼函數,就是執行階段為了回應某些發生的事件所呼叫的函數。在上述範例中,
onMetaData()
函數為虛設常式,可以滿足提供函數時所需的必要條件。如需詳細資訊,請參閱
為中繼資料和提示點撰寫回呼方法
。
離開全螢幕模式
使用者輸入一個鍵盤快速鍵 (如 Escape 鍵),就可以離開全螢幕模式。您可以在 ActionScript 中將
Stage.displayState
屬性設定為
StageDisplayState.NORMAL
,以結束全螢幕模式。下列範例中的程式碼會在 NetStream.Play.Stop
netStatus
事件發生時,結束全螢幕模式。
videoStream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
private function netStatusHandler(event:NetStatusEvent)
{
if(event.info.code == "NetStream.Play.Stop")
stage.displayState = StageDisplayState.NORMAL;
}
全螢幕硬體加速
當您將舞台的矩形區域放大為全螢幕時,Flash Player 或 AIR 會使用硬體加速 (視可用情形和是否已啟用而定)。執行階段會使用電腦中的視訊卡,加快將視訊或部分舞台放大為全螢幕大小的速度。在這些情況下,從 Video 類別 (或 Camera 類別;Flash Player 11.4/AIR 3.4 及更新版本) 切換成 StageVideo 類別,通常對 Flash Player 應用程式效能有利。
如需有關在全螢幕模式中進行硬體加速的詳細資訊,請參閱
使用全螢幕模式
。如需有關 StageVideo 的詳細資訊,請參閱
使用硬體加速呈現方式的 StageVideo 類別
。