| 套件 | flash.media | 
| 類別 | public class Video | 
| 繼承 | Video    DisplayObject   EventDispatcher   Object | 
| 子類別 | VideoPlayer | 
| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
與 Flash Media Server 搭配使用時,Video 物件可讓您傳送使用者擷取的即時視訊到伺服器,然後從伺服器廣播給其他使用者。您可以利用這些功能開發媒體應用程式,例如簡單的視訊播放程式、從一部伺服器多點發佈到其它伺服器的視訊播放程式,以及使用者社群的視訊共用應用程式。
Flash Player 9 和更新版本支援發佈和播放以 Sorenson Spark 或 On2 VP6 轉碼器編碼的 FLV 檔,另外也支援 Alpha 色版。相較於以往的技術,On2 VP6 視訊轉碼器使用較少的頻寬,並提供額外的消除馬賽克和消除環狀色斑濾鏡程式。如需有關視訊播放與支援格式的詳細資訊,請參閱「flash.net.NetStream 類別」。
 Flash Player 9.0.115.0 和更新版本支援 Mip 映射 (Mipmapping),使執行階段顯示品質和效能達到最佳化。如果您將 Video 物件的 smoothing 屬性設定為 true,Flash Player 會在播放視訊時使用 Mip 映射 (Mipmapping) 最佳化。 
 
 從 AIR 25 開始, app.xml 中為 Android 引進了名為 disableMediaCodec 的新標籤。將這個標籤設定為 true 會停用 mediacodec,且視訊會使用 OpenMax AL 進行解碼。否則,會啟用 mediacodec。根據預設,這個標籤的值為 false。 
 
 就像顯示清單上的其它顯示物件一樣,您可以控制 Video 物件的許多屬性。 例如,您可以使用 Video 物件的 x 和 y 屬性,將它移動到「舞台」上的各個位置,並使用它的 height 和 width 屬性來變更大小,依此類推。 
 
 若要播放視訊串流,請使用 attachCamera() 或 attachNetStream() 將視訊附加至 Video 物件。 然後使用 addChild() 將 Video 物件加入顯示清單。
 
 如果您使用的是 Flash Professional,您也可以將 Video 物件置於「舞台」上,而不是用 addChild() 加入它,例如:
 
- 如果看不見「元件庫」面板,請選取「視窗 > 元件庫」來顯示它。
 - 將嵌入的 Video 物件新增到元件庫,按一下「元件庫」面板標題列右方的「選項」選單,並選取「新增視訊」。
 - 在「視訊屬性」對話方塊中,為內嵌的 Video 物件命名以供元件庫使用,然後按一下「確定」。
 - 將 Video 物件拖曳到「舞台」上,並使用「屬性」檢測器賦予它唯一的實體名稱,例如 
my_video。 (請勿將它命名為 Video)。 
在桌面的 AIR 應用程式中,以全螢幕模式播放視訊會停用任何省電或螢幕保護功能 (若作業系統允許)。
                  注意:由於 Video 類別並非 InteractiveObject 類別的子類別,所以無法傳送滑鼠事件。 但是您可以對包含 Video 物件的顯示物件容器呼叫 addEventListener() 方法。
 
詳細資訊
相關 API 元素
attachNetStream()
flash.media.Camera.getCamera()
flash.net.NetConnection
flash.net.NetStream
flash.display.DisplayObjectContainer.addChild()
flash.display.Stage.addChild()
| 屬性 | 定義自 | ||
|---|---|---|---|
![]()  | accessibilityProperties : AccessibilityProperties 
     此顯示物件的目前輔助功能選項。  | DisplayObject | |
![]()  | alpha : Number 
     指出所指定物件的 Alpha 透明度值。  | DisplayObject | |
![]()  | blendMode : String 
     來自 BlendMode 類別的值,會指定要使用何種混合模式。  | DisplayObject | |
![]()  | blendShader : Shader [唯寫] 
     設定用來混合前景和背景的著色器。  | DisplayObject | |
![]()  | cacheAsBitmap : Boolean 
     如果設定為 true,Flash 執行階段會快取顯示物件的內部點陣圖表示法。  | DisplayObject | |
![]()  |     cacheAsBitmapMatrix : Matrix 
     如果為非 null,當 cacheAsBitmap 設定為 true 時,這個 Matrix 物件會定義顯示物件的顯示方法。  | DisplayObject | |
![]()  | constructor : Object 
	 類別物件的參照或是特定物件實體的建構函數。  | Object | |
| deblocking : int 
     指出套用到解碼視訊做為後置處理之一部份的濾鏡類型。  | Video | ||
![]()  | filters : Array 
     索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。  | DisplayObject | |
![]()  | height : Number 
     會指出顯示物件的高度,以像素為單位。  | DisplayObject | |
![]()  | loaderInfo : LoaderInfo [唯讀] 
     會傳回 LoaderInfo 物件,其中包含關於載入此顯示物件所屬之檔案的資訊。  | DisplayObject | |
![]()  | mask : DisplayObject 
     呼叫之顯示物件會以指定的 mask 物件遮蓋。  | DisplayObject | |
![]()  | metaData : Object 
     如果中繼資料是透過 PlaceObject4 標籤與 SWF 檔案中的這個 DisplayObject 實體一同儲存,則會取得 DisplayObject 實體的中繼資料物件。  | DisplayObject | |
![]()  | mouseX : Number [唯讀] 
     指出滑鼠或使用者輸入裝置位置的 x 座標,以像素為單位。  | DisplayObject | |
![]()  | mouseY : Number [唯讀] 
     指出滑鼠或使用者輸入裝置位置的 y 座標,以像素為單位。  | DisplayObject | |
![]()  | name : String 
     指出 DisplayObject 的實體名稱。  | DisplayObject | |
![]()  | opaqueBackground : Object 
     會指定顯示物件是否不透明,並具有特定背景顏色。  | DisplayObject | |
![]()  | parent : DisplayObjectContainer [唯讀] 
     指出包含此顯示物件的 DisplayObjectContainer 物件。  | DisplayObject | |
![]()  | root : DisplayObject [唯讀] 
     對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。  | DisplayObject | |
![]()  | rotation : Number 
     指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。  | DisplayObject | |
![]()  | rotationX : Number 
     表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 x 軸旋轉 (以度數為單位)。  | DisplayObject | |
![]()  | rotationY : Number 
     表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 y 軸旋轉 (以度數為單位)。  | DisplayObject | |
![]()  | rotationZ : Number 
     表示 DisplayObject 實體相對於 3D 父輩容器從原始方向旋轉的 z 軸旋轉 (以度數為單位)。  | DisplayObject | |
![]()  | scale9Grid : Rectangle 
     目前產生效用的縮放格線。  | DisplayObject | |
![]()  | scaleX : Number 
     指出從註冊點套用的物件水平縮放 (百分比)。  | DisplayObject | |
![]()  | scaleY : Number 
     指出從物件註冊點套用的物件垂直縮放 (百分比)。  | DisplayObject | |
![]()  | scaleZ : Number 
     指出從物件註冊點套用的物件深度縮放 (百分比)。  | DisplayObject | |
![]()  | scrollRect : Rectangle 
     顯示物件的捲動矩形範圍。  | DisplayObject | |
| smoothing : Boolean 
     指定是否需要在視訊縮放時進行平滑處理 (漸變影格)。  | Video | ||
![]()  | stage : Stage [唯讀] 
     顯示物件的「舞台」。  | DisplayObject | |
![]()  | transform : flash.geom:Transform 
    這是一個物件,具有和顯示物件的矩陣、顏色轉換和像素邊界有關的屬性。  | DisplayObject | |
| videoHeight : int [唯讀] 
      指定視訊串流高度的整數,以像素為單位。  | Video | ||
| videoWidth : int [唯讀] 
      指定視訊串流寬度的整數,以像素為單位。  | Video | ||
![]()  | visible : Boolean 
     不管是否看得見顯示物件。  | DisplayObject | |
![]()  | width : Number 
     會指出顯示物件的寬度,以像素為單位。  | DisplayObject | |
![]()  | x : Number 
     指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。  | DisplayObject | |
![]()  | y : Number 
     指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。  | DisplayObject | |
![]()  | z : Number 
     表示 DisplayObject 實體相對於 3D 父輩容器的 z 座標位置 (沿著 z 軸)。  | DisplayObject | |
| 方法 | 定義自 | ||
|---|---|---|---|
     會建立新的 Video 實體。  | Video | ||
![]()  | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 
	會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。  | EventDispatcher | |
     指定來自攝影機且即將在應用程式中 Video 物件邊界範圍內顯示的視訊串流。  | Video | ||
     指定即將在應用程式中 Video 物件邊界範圍內顯示的視訊串流。  | Video | ||
     清除目前顯示在 Video 物件 (而非視訊串流) 中的影像。  | Video | ||
![]()  | 
	會將事件傳送到事件流程。  | EventDispatcher | |
![]()  | 
     傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。  | DisplayObject | |
![]()  | 
    根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。  | DisplayObject | |
![]()  | 
     將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。  | DisplayObject | |
![]()  | 
     將二維點從「舞台」(全域) 座標轉換為三維顯示物件的 (區域) 座標。  | DisplayObject | |
![]()  | 
	會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。  | EventDispatcher | |
![]()  | 
	 指出物件是否有已定義的指定屬性。  | Object | |
![]()  | 
     評估顯示物件的範圍框,看它是否與 obj 顯示物件的範圍框重疊或相交。  | DisplayObject | |
![]()  | 
     評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。  | DisplayObject | |
![]()  | 
	 指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。  | Object | |
![]()  | 
     將三維顯示物件的 (區域) 座標的三維點轉換為「舞台」(全域) 座標中的二維點。  | DisplayObject | |
![]()  | 
     將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。  | DisplayObject | |
![]()  | 
	 指出指定的屬性是否存在,以及是否可列舉。  | Object | |
![]()  | 
	會從 EventDispatcher 物件移除偵聽程式。  | EventDispatcher | |
![]()  | 
     為迴圈作業設定動態屬性的可用性。  | Object | |
![]()  | 
	 傳回代表此物件的字串,根據地區特定慣例進行格式化。  | Object | |
![]()  | 
	 會傳回指定之物件的字串形式。  | Object | |
![]()  | 
	 會傳回指定之物件的基本值。  | Object | |
![]()  | 
	檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。  | EventDispatcher | |
deblocking | 屬性 | 
deblocking:int| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
指出套用到解碼視訊做為後置處理之一部份的濾鏡類型。 預設值為 0,可讓視訊壓縮程式視需要套用消除馬賽克的濾鏡。
視訊的壓縮可能會產生不想要的雜訊。 您可以使用 deblocking 屬性來設定濾鏡,以便減少馬賽克和環狀色斑 (針對使用 On2 轉碼器壓縮的視訊)。
「馬賽克」是指組成每個視訊影格的區塊邊界之間的可見瑕疵。 「環狀色斑」是指視訊影像內各元素周圍的扭曲邊緣。
您可以使用兩種消除馬賽克濾鏡: 一種是在 Sorenson 轉碼器中,而另一種則在 On2 VP6 轉碼器中。 此外,當您使用 On2 VP6 轉碼器時,可以使用消除環狀色斑濾鏡。 若要設定濾鏡,請使用下列其中一個值:
- 0 - 讓視訊壓縮程式視需要套用消除馬賽克濾鏡。
 - 1 - 不使用消除馬賽克濾鏡。
 - 2 - 使用 Sorenson 消除馬賽克濾鏡。
 - 3 - (僅適用於 On2 視訊) 使用 On2 消除馬賽克濾鏡,但不使用消除環狀色斑濾鏡。
 - 4 - (僅適用於 On2 視訊) 使用 On2 消除馬賽克和消除環狀色斑濾鏡。
 - 5 - (僅適用於 On2 視訊) 使用 On2 消除馬賽克和消除環狀色斑濾鏡。
 
如果使用 Sorenson 轉碼器時為視訊選取 2 以上的值,Sorenson 解碼器會預設為 2。
使用消除馬賽克濾鏡會影響整體的播放效果,因此高頻寬的視訊通常都不會用到。 如果使用者的系統功能不夠強,在啟用消除馬賽克濾鏡時,可能會遇到播放視訊方面的困難。
實作
    public function get deblocking():int    public function set deblocking(value:int):voidsmoothing | 屬性 | 
smoothing:Boolean| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
     指定是否需要在視訊縮放時進行平滑處理 (漸變影格)。 如果要讓平滑處理作業發揮作用,執行階段就必須處於高品質的模式中 (預設)。預設值是 false (不平滑處理)。
     
若要使用 Flash Player 9.0.115.0 和更新版本播放視訊,請將此屬性設定為 true,以便利用 Mip 映射影像最佳化。
實作
    public function get smoothing():Boolean    public function set smoothing(value:Boolean):voidvideoHeight | 屬性 | 
videoHeight:int  [唯讀] | 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
      指定視訊串流高度的整數,以像素為單位。 對於即時串流來說,這個值和 Camera 物件的 Camera.height 屬性相同,此 Camera 物件指的是正在捕捉視訊串流的 Camera 物件。 針對錄製的視訊檔案,此值為視訊的高度。若是錄製的視訊,則當此值變更時就會傳送 NetStream.Video.DimensionChange 事件。
     
例如,若您要確保不論 Video 物件在舞台上實際的大小如何,使用者所看到的視訊和它們被擷取時大小相同,則您可能要使用這個屬性。
實作
    public function get videoHeight():int相關 API 元素
videoWidth | 屬性 | 
videoWidth:int  [唯讀] | 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
      指定視訊串流寬度的整數,以像素為單位。 對於即時串流來說,這個值和 Camera 物件的 Camera.width 屬性相同,此 Camera 物件指的是正在捕捉視訊串流的 Camera 物件。 針對錄製的視訊檔案,此值為視訊的寬度。若是錄製的視訊,則當此值變更時就會傳送 NetStream.Video.DimensionChange 事件。
     
     
例如,若您要確保不論 Video 物件在舞台上實際的大小如何,使用者所看到的視訊和它們被擷取時大小相同,則您可能要使用這個屬性。
實作
    public function get videoWidth():int相關 API 元素
Video | () | 建構函式 | 
public function Video(width:int = 320, height:int = 240)| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9 | 
     會建立新的 Video 實體。 如果沒有提供 width 和 height 參數的值,就會使用預設值。 您也可以在初始建構之後,使用 Video.width 和 Video.height 設定 Video 物件的寬度和高度屬性。 建立新的 Video 物件後,寬度或高度就不允許輸入零這個值。如果您傳遞零,就會套用預設值。
     
     
建立 Video 後,請呼叫 DisplayObjectContainer.addChild() 或 DisplayObjectContainer.addChildAt() 方法,將 Video 物件加入父 DisplayObjectContainer 物件。
width:int (default = 320) — 視訊的寬度,以像素為單位。
      | |
height:int (default = 240) — 視訊的高度,以像素為單位。
     
      | 
範例 ( 如何使用本範例 )
var MyVideo:Video = new Video();
addChild(MyVideo);
 
var MyNC:NetConnection = new NetConnection();
MyNC.connect(null);
 
var MyNS:NetStream = new NetStream(MyNC);
MyNS.play("http://www.helpexamples.com/flash/video/clouds.flv");
MyVideo.attachNetStream(MyNS);
//the clouds.flv video has metadata we're not using, so create
//an error handler to ignore the message generated by the runtime
//about the metadata
MyNS.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 
function asyncErrorHandler(event:AsyncErrorEvent):void 
{ 
   //ignore metadata error message
} 
attachCamera | () | 方法 | 
 public function attachCamera(camera:Camera):void| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9 | 
指定來自攝影機且即將在應用程式中 Video 物件邊界範圍內顯示的視訊串流。
使用這個方法附加使用者擷取的即時視訊至 Video 物件。您可以在擷取即時視訊的相同本機電腦或裝置上播放,也可以將它傳到 Flash Media Server 並使用伺服器將它串流給其他使用者。
注意:在 iOS AIR 應用程式中,當應用程式使用 GPU 顯示模式時,無法顯示攝影機視訊。
參數
camera:Camera — 正在捕捉視訊資料的 Camera 物件。 若要丟棄 Video 物件的連線,請傳遞 null。
     
      | 
相關 API 元素
範例
如何使用本範例
請參閱 Camera.getCamera() 方法的範例,以取得使用此方法的詳細指示。
attachNetStream | () | 方法 | 
 public function attachNetStream(netStream:NetStream):void| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
     指定即將在應用程式中 Video 物件邊界範圍內顯示的視訊串流。 視訊串流是以 NetStream.play() 播放的視訊檔案、Camera 物件或 null。如果您使用視訊檔案,它可以儲存在本機檔案系統或 Flash Media Server 上。如果 netStream 引數的值是 null,則視訊便不會於 Video 物件中播放。
     
     
     如果視訊檔案只包含音效,您就不必使用這個方法;呼叫 NetStream.play() 時,就會自動播放視訊檔案的音效部分。若要控制與視訊檔案關聯的音效,請使用播放視訊檔案之 NetStream 物件的 soundTransform 屬性。
     
參數
netStream:NetStream — NetStream 物件。 若要丟棄 Video 物件的連線,請傳遞 null。
     
      | 
相關 API 元素
clear | () | 方法 | 
 public function clear():void| 語言版本: | ActionScript 3.0 | 
| 執行階段版本: | AIR 1.0, Flash Player 9, Flash Lite 4 | 
清除目前顯示在 Video 物件 (而非視訊串流) 中的影像。這個方法有助於處理目前的影像。例如,您可以清除上一個影像或顯示待用資訊,而不必隱藏 Video 物件。
相關 API 元素
videoURL 的變數相符,在這個範例中,名為 Video.flv 的 FLV 檔是與 SWF 檔位於相同的目錄中。
 在這個範例中,是將建立 Video 和 NetStream 物件的程式碼與呼叫 Video.attachNetStream() 和 NetStream.play() 置入處理常式函數中。 只有在嘗試連線至 NetConnection 物件成功後才會呼叫處理常式,也就是 netStatus 事件傳回的 info 物件中含有表示成功的 code 屬性。 建議您先等候連線成功,然後再呼叫 NetStream.play()。 
 package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    public class VideoExample extends Sprite {
        private var videoURL:String = "Video.flv";
        private var connection:NetConnection;
        private var stream:NetStream;
        public function VideoExample() {
            connection = new NetConnection();
            connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            connection.connect(null);
        }
        private function netStatusHandler(event:NetStatusEvent):void {
            switch (event.info.code) {
                case "NetConnection.Connect.Success":
                    connectStream();
                    break;
                case "NetStream.Play.StreamNotFound":
                    trace("Unable to locate video: " + videoURL);
                    break;
            }
        }
        private function connectStream():void {
            stream = new NetStream(connection);
            stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
            var video:Video = new Video();
            video.attachNetStream(stream);
            stream.play(videoURL);
            addChild(video);
        }
        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }
        
        private function asyncErrorHandler(event:AsyncErrorEvent):void {
            // ignore AsyncErrorEvent events.
        }
    }
 }
Tue Jun 12 2018, 03:47 PM Z
 
 隱藏繼承公用屬性
 顯示繼承公用屬性