控制視訊檢視的位置和大小

您可以使用MediaPlayerView物件來控制視訊檢視的位置和大小。

TVSDK依預設會嘗試在視訊大小或位置變更時(因應用程式、描述檔開關或內容切換等而變更)維持視訊檢視的外觀比例。

通過指定不同的​比例策略,可以覆蓋預設長寬比行為。 使用MediaPlayerView物件的scalePolicy屬性指定縮放原則。 MediaPlayerView的預設比例策略是使用MaintainAspectRatioScalePolicy類的實例設定的。 若要重設比例原則,請以您自己的原則取代MediaPlayerView.scalePolicy上的預設例項MaintainAspectRatioScalePolicy。 (不能將scalePolicy屬性設定為空值。)

  1. 實作MediaPlayerViewScalePolicy介面以建立您自己的縮放原則。

    MediaPlayerViewScalePolicy有一個方法:

    public function adjust(viewPort:Rectangle, 
      videoWidth:Number, videoHeight:Number):Rectangle;
    
    注意

    TVSDK使用StageVideo物件來顯示視訊,而由於StageVideo物件不在顯示清單中,因此viewPort參數會包含視訊的絕對座標。

    例如:

    public class CustomScalePolicy implements MediaPlayerViewScalePolicy {
    /**
    * Default constructor.
    */
    public function CustomScalePolicy() {
    }

    public function adjust(viewPort:Rectangle,

                                                    videoWidth:Number,  
                                                    videoHeight:Number):Rectangle { 
              return customAdjustment(); 
      } 
    

    public function customAdjustment():Rectangle {

              /* Your custom adjustment here */ 
              [...] 
      } 
    

    }

  2. 將實施指派給MediaPlayerView屬性。

    var view:MediaPlayerView = MediaPlayerView.create(stage.stageVideos[0]); 
    view.scalePolicy = new CustomScalePolicy();
    
  3. 將您的檢視新增至Media Player的view屬性。

    addChild(view); 
    
    mediaPlayer.view = view;
    

例如:縮放視訊以填滿整個視訊檢視,而不需維持外觀比例:

package com.adobe.mediacore.samples.utils { 
    import com.adobe.mediacore.view.MediaPlayerViewScalePolicy; 
    import flash.geom.Rectangle; 
 
    /** 
    * A very simple custom scale policy - the video will fill the entire 
    * allocated space. The aspect ratio will not be kept. 
    */ 
    public class CustomScalePolicy implements MediaPlayerViewScalePolicy { 
 
        /** 
        * Default constructor. 
        */ 
        public function CustomScalePolicy() { 
        } 
 
        public function adjust(viewPort:Rectangle, 
                               videoWidth:Number,  
                               videoHeight:Number):Rectangle { 
            return viewPort; 
        } 
    } 
} 
 
var view:MediaPlayerView = MediaPlayerView.create(stage.stageVideos[0]); 
view.scalePolicy = new CustomScalePolicy(); 
addChild(view); 
mediaPlayer.view = view;

本頁內容