2011-08-05 66 views
0

我正在构建一个有两种可切换大小的播放器,由用户更改,但我没有获得相关结果。如何调整视频的大小

这是我的setupPlayer功能,工作正常:

function setupPlayer():void 
{ 

      layout.width = _playerWidth; 
      layout.height = _playerHeight; 
      layout.layoutMode = LayoutMode.HORIZONTAL 
      layout.horizontalAlign = HorizontalAlign.CENTER; 
      layout.verticalAlign = VerticalAlign.TOP; 
      layout.scaleMode = ScaleMode.LETTERBOX; 

      videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
      videoElement.smoothing = true; 

      mediaPlayer.loop = false; 
      mediaPlayer.autoPlay = _autoPlay;    
      mediaContainer.addMediaElement(videoElement); 
      videoCanvas.addChild(mediaContainer);  

       .... // more code // 
} 

然后,我喂的球员,它开始正常播放,这是当我试图调整其大小。 (我没地方读书,我需要改变LayoutMetadata),但没有任何效果:

public function resize(width:Number, height:Number):void 
{ 
      // none of this worked 
      //mediaContainer.width = 1200; 
      //mediaContainer.height = 2000; 
      //mediaContainer.layout(1200, 2000, true); 


      // neither this 
      var layout:LayoutMetadata = new LayoutMetadata(); 
      layout.width = 1500; 
      layout.height = 1500; 
      layout.layoutMode = LayoutMode.HORIZONTAL 
      layout.horizontalAlign = HorizontalAlign.CENTER; 
      layout.verticalAlign = VerticalAlign.TOP; 
      layout.scaleMode = ScaleMode.STRETCH; 

      videoElement.removeMetadata(LayoutMetadata.LAYOUT_NAMESPACE) 
      videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
} 

有人能在我的错误是什么?

谢谢!

回答

0

这个工作,我不得不改变mediaContainer尺寸定义一个新的layoutMetadata我目前videoElement:

public function resize(width:Number, height:Number):void 
{ 
      mediaContainer.width = width; 
      mediaContainer.height = height; 

      var layout:LayoutMetadata = new LayoutMetadata(); 
      layout.width = width; 
      layout.height = height; 
      layout.layoutMode = LayoutMode.HORIZONTAL; 
      layout.horizontalAlign = HorizontalAlign.CENTER; 
      layout.verticalAlign = VerticalAlign.TOP; 
      layout.scaleMode = ScaleMode.STRETCH; 

      videoElement.removeMetadata(LayoutMetadata.LAYOUT_NAMESPACE); 
      videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
} 
2

而不是设置VideoElement的宽度和高度属性,分别将MediaContainer的宽度和高度设置为_playerWidth和_playerHeight。尝试下面的代码,看看它是否解决你的问题

function setupPlayer():void 
{ 

      mediaContainer.width = _playerWidth; 
      mediaContainer.height = _playerHeight; 

      layout.layoutMetadata.percentWidth = 100; 
      layout.layoutMetadata.percentHeight = 100; 
      layout.scaleMode = ScaleMode.LETTERBOX; 

      videoElement.addMetadata(LayoutMetadata.LAYOUT_NAMESPACE, layout); 
      videoElement.smoothing = true; 

      mediaPlayer.loop = false; 
      mediaPlayer.autoPlay = _autoPlay;    
      mediaContainer.addMediaElement(videoElement); 
      videoCanvas.addChild(mediaContainer);  

       .... // more code // 
} 

public function resize(width:Number, height:Number):void 
{ 
      // none of this worked 
      mediaContainer.width = 1200; 
      mediaContainer.height = 2000; 
} 
+0

我想出如何做到这一点,我需要改变mediaContainer **和**设置一个新的layouMetadata。 –