我正在尝试使VideoView
在cocos2d-x曲面视图的顶部工作。我现在可以使用以下代码片段加载和播放视频:
初始化类时:
// Create the LinearLayout that will contain our VideoView
_videoLayout = new LinearLayout( _activity );
_videoLayout.setId( VIDEO_VIEW_ID );
_videoLayout.setGravity( Gravity.CENTER );
_videoLayout.setBackgroundColor( Color.BLACK );
_videoLayout.setOrientation( LinearLayout.VERTICAL );
_videoLayout.bringToFront();
// Add the LinearLayout to the current Activity
_activity = MyGame.getCocosActivity();
_activity.addContentView( _videoLayout, new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ) );
播放视频时:
// When the video is ready to be played, create a VideoView
VideoView videoView = new VideoView( Cocos2dxActivity.getContext() );
videoView.setLayoutParams( new LayoutParams( LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT ) );
// Add it to the _videoLayout object
LinearLayout layout = ( LinearLayout ) activity.findViewById( VIDEO_VIEW_ID );
layout.setVisibility( View.VISIBLE );
layout.addView( videoView );
// Play the video
videoView.setVideoURI( Uri.parse( path ) );
videoView.requestFocus();
videoView.start();
上述代码产生以下结果:
- 播放视频并正确听到声音
- 视频在水平和垂直方向上居中
- 有时,视频在当前Cocos2d-x视图下方播放。再次播放它将使它在它之上播放
- 视频不是全屏的。它只在屏幕上占据足够的空间来显示视频
我的预期结果是:
- 视频始终在cocos2d-x视图的顶部播放
- 视频占据了整个屏幕,仍然保持纵横比,但两侧有黑色边框
我似乎不知道如何完成这两件事。有什么帮助吗?我对安卓框架不是很有经验,所以请耐心等待。
注意:我不想使用XML来创建布局。
为什么不想使用XML布局?它们就是为这个而设计的,当你掌握了它们之后,你的生活会变得轻松很多。
无论如何:在我的情况下,我在RelativeLayout上添加了VideoView,并将其CenterHorizontal和CenterVertical参数设置为true。宽度和高度设置为wrap_content
。这是用XML完成的,所以我不能为您提供Java等效程序。
也可以尝试在布局上调用bringToFront()
,以确保视频位于CocosView的顶部。