Как изменить размер видео - PullRequest
0 голосов
/ 05 августа 2011

Я собираю плеер с двумя переключаемыми размерами, измененными пользователем, но у меня нет результатов по этому поводу.

Это моя функция 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);
}

Кто-то может указать, где моя ошибка?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

вместо установки свойств ширины и высоты 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 голосов
/ 06 августа 2011

Это сработало, мне пришлось изменить размеры mediaContainer и , чтобы определить новый 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);
}
...