如何使用exoplayer在景观中播放视频全屏
问题描述:
我使用exoplayer从我的android应用程序中的URL播放视频。在肖像中,一切都按预期工作(在活动中使用viewpager,片段和制表符)。 我的目标是在用户处于横向模式时以全屏播放视频。这意味着只有视频将在横向上播放,并且所有其他详细信息将在desapear时返回到原始布局。 我该如何做到这一点?或者什么是达到这个目标的最好方法?任何示例代码将不胜感激。如何使用exoplayer在景观中播放视频全屏
答
我是一个菜鸟,所以这是最好的,我可以帮忙,顺便说一句我的Exoplayer演示应用程序测试了这个,我改变了exoplayer高度600像素和我申请这个代码,它完美地工作。
添加该代码来检测屏幕方向
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Checking the orientation of the screen
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//First Hide other objects (listview or recyclerview), better hide them using Gone.
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=params.MATCH_PARENT;
simpleExoPlayerView.setLayoutParams(params);
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//unhide your objects here.
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
params.width=params.MATCH_PARENT;
params.height=600;
simpleExoPlayerView.setLayoutParams(params);
}
}
BTW在您不使用的FrameLayout但RelativeLayout的
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();
我忘了,你需要隐藏动作或标题栏,希望这种情况下,代码有助于在上面的代码中添加这些代码,我想你也需要将你的活动扩展到AppCompatActivity,以使getSupportActionBar代码可以工作。
if(getSupportActionBar()!=null) {
getSupportActionBar().hide();
}
//To show the action bar
if(getSupportActionBar()!=null) {
getSupportActionBar().show();
}
也可能有助于为整个项目的全屏幕,隐藏状态bar.etc,必须内onConfigurationChanged根据屏幕方向进行添加。
在横向
ExoPlayerActivity.this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN || View.SYSTEM_UI_FLAG_IMMERSIVE);
从全屏退出在肖像
ExoPlayerActivity.this.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
我编辑的代码,我添加View.SYSTEM_UI_FLAG_IMMERSIVE防止状态栏示出从在控制按钮时用户点击视频。
非常感谢您的回答。但最终我发现这个github项目,通过使用Dialog https://github.com/GeoffLedak/ExoplayerFullscreen来解决我的问题 – scalp007