Flash 如何调整视频大小
我正在构建一个具有两种可切换尺寸的播放器,由用户更改,但我没有结果 这是我的setupPlayer函数,工作正常:Flash 如何调整视频大小,flash,actionscript-3,video,osmf,Flash,Actionscript 3,Video,Osmf,我正在构建一个具有两种可切换尺寸的播放器,由用户更改,但我没有结果 这是我的setupPlayer函数,工作正常: function setupPlayer():void { layout.width = _playerWidth; layout.height = _playerHeight; layout.layoutMode = LayoutMode.HORIZONTAL layout.hor
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);
}
有人能指出我的错误在哪里吗
谢谢 不要设置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;
}
这起作用了,我必须更改mediaContainer维度,并为我当前的videoElement定义一个新的layoutMetadata:
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);
}
我知道了如何正确地做到这一点,我需要更改mediaContainer并设置一个新的layouMetadata。