Можно ли масштабировать видеоплеер Feathers? - PullRequest
1 голос
/ 07 ноября 2019

Может показаться, что ширина и высота компонента Feathers VideoPlayer могут быть установлены.

Но при загрузке источника видео размер всегда возвращается к размеру исходного видео.

Любые идеи, как это исправить?

В этом примере собственное видео имеет размер 640x390, и проигрыватель отображается с таким размером.

_videoPlayer = new VideoPlayer();
_videoPlayer.setSize( 640*2, 390*2 );
_videoPlayer.validate();

addChild( _videoPlayer);
_videoPlayer.videoSource = "http://www.test.com/test.mp4";
_imageLoader = new ImageLoader();
_videoPlayer.addChild( _imageLoader );
_videoPlayer.addEventListener( Event.READY, videoPlayer_readyHandler );
_videoPlayer.addEventListener( FeathersEventType.CLEAR, videoPlayer_clearHandler );

Спасибо,

Отметить

Ответы [ 2 ]

0 голосов
/ 08 ноября 2019

По умолчанию VideoPlayer не имеет макета, поэтому даже если вы установите свойства width и height, он ничего не изменит для размера добавляемых вами дочерних элементов, таких как ImageLoader, который отображает текстуру видео. VideoPlayer на самом деле остается в своем фиксированном размере, но ImageLoader видит, что у него нет явной ширины / высоты, поэтому он изменяет свой размер, чтобы отобразить текстуру видео в исходном размере видео.

Вы должны использовать VideoPlayer с макетом. Например, вы можете использовать VerticalLayout, например:

_videoPlayer.layout = new VerticalLayout();

И затем вы можете передать VerticalLayoutData в ImageLoader и установить значения percentWidth и percentHeight в 100 чтобы он заполнил все границы VideoPlayer:

_imageLoader.layoutData = new VerticalLayoutData(100, 100);
0 голосов
/ 08 ноября 2019

Установка размера imageLoader, похоже, является ответом.

_videoPlayer = new VideoPlayer();
_videoPlayer.setSize( 640*Main._starlingScale, 390*Main._starlingScale );
_videoPlayer.validate();

_containerSprite.addChild( _videoPlayer);
_videoPlayer.videoSource = "http://www.test.com/test.mp4";
_imageLoader = new ImageLoader();
_imageLoader.width = 640;
_imageLoader.height = 390;
_videoPlayer.addChild( _imageLoader );

// 640x390 - размер области отображения скриншота.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...