gpt4 book ai didi

android - 如何使用exoplayer横向全屏播放视频

转载 作者:可可西里 更新时间:2023-11-01 19:07:10 26 4
gpt4 key购买 nike

我正在使用 exoplayer 在我的 android 应用程序中播放来自 url 的视频。在肖像中,一切都按预期工作(在 Activity 中使用 viewpager、 fragment 和选项卡)。我的目标是在用户横向时全屏播放视频。这意味着只有视频会横向播放,所有其他细节都会消失并在纵向时返回到原始布局。请问我怎样才能做到这一点?或者实现这一目标的最佳方法是什么?任何示例代码将不胜感激。

Video to be play when portrait

最佳答案

我是菜鸟,所以这是我能提供的最好的帮助,顺便说一下,我在 Exoplayer 演示应用程序中对此进行了测试,我将 exoplayer 高度更改为 600px,并应用了这段代码,它运行良好。

添加此代码以检测屏幕方向

  @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);
}
}

顺便说一下,如果你使用的不是 FrameLayout 而是 RelativeLayout

      RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) simpleExoPlayerView.getLayoutParams();

我忘记了您需要隐藏操作栏或标题栏,希望这段代码能有所帮助,将这些代码添加到上面的代码中,而且我认为您需要将 Activity 扩展到 AppCompatActivity 才能使 getSupportActionBar 代码正常工作。

if(getSupportActionBar()!=null) {
getSupportActionBar().hide();
}
//To show the action bar
if(getSupportActionBar()!=null) {
getSupportActionBar().show();
}

这也可能有助于将整个项目设置为全屏,隐藏状态栏等,必须根据屏幕方向将其添加到 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 以防止当用户单击视频中的控制按钮时显示状态栏。

关于android - 如何使用exoplayer横向全屏播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46713761/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com