1

似乎可以设置 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 );

谢谢,

标记

4

2 回答 2

0

设置 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是八哥显示区域的大小。

于 2019-11-08T06:19:51.717 回答
0

默认情况下,VideoPlayer没有布局,因此即使您设置widthheight属性,它也不会限制您添加的任何子项的大小,例如ImageLoader显示视频纹理的子项。VideoPlayer实际上保持在它的固定大小,但是看到ImageLoader它没有明确的宽度/高度,所以它调整自己的大小,以视频的原始大小渲染视频纹理。

您应该使用VideoPlayer布局。例如,您可以使用VerticalLayout,如下所示:

_videoPlayer.layout = new VerticalLayout();

然后,您可以传递VerticalLayoutDataImageLoader, 并将percentWidthandpercentHeight值设置100为使其填充 的整个边界VideoPlayer

_imageLoader.layoutData = new VerticalLayoutData(100, 100);
于 2019-11-08T16:40:21.363 回答