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

您可以使用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;

本頁內容