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

2023-12-29

我正在使用 exoplayer 在我的 Android 应用程序中播放来自 url 的视频。在纵向中,一切都按预期工作(在活动中使用视图页面、片段和选项卡)。 我的目标是当用户处于横向状态时全屏播放视频。这意味着只有视频将以横向方式播放,所有其他细节都将消失并返回到纵向时的原始布局。 请问我怎样才能实现这个目标?或者实现这一目标的最佳方法是什么?任何示例代码将不胜感激。


我是菜鸟,所以这是我能提供的最好帮助,顺便说一句,我在 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();

我忘记了您需要隐藏操作或标题栏,希望此代码有帮助,在上面的代码中添加这些代码,而且我认为您需要将您的活动扩展到 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 以防止用户单击视频中的控制按钮时显示状态栏。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 exoplayer 横向全屏播放视频 的相关文章

  • 如何在android中显示对话框之外的图像?

    我试图在对话框片段的顶部显示配置文件图像 一半在图像之外 我在下面附加了示例对话框 就像那样 并尝试了旧 Stackoverflow 解决方案中的所有 FrameLayout 协作 但我无法存档此内容 请给我正确的解决方案 谢谢 Updat
  • Android:初始化本机 AudioRecord 对象时 AudioRecord 错误代码 -20

    Android 我想从麦克风读取缓冲区 以便我可以对其执行处理 以下是我的代码 int sampleRateInHz 8000 44100 22050 and 11025 int channelConfig AudioFormat CHAN
  • Android 中的 Fragment-Fragment 通信

    我在Android编程方面处于初级水平 所以我需要你真诚的帮助 请任何人帮助我 我正在尝试使用片段构建滑动用户界面 所以我真正的疑问是 我有一个Fragment say FragmentA 它有一个TextView and Button在其
  • 拖动时跳转 ImageView。 getX() 和 getY() 值正在跳跃

    我创建了一个用于拖动视图的 onTouchListener 如果我使用的话 图像可以顺利拖动getRawX and getRawY 问题是 当您向下放置第二个指针然后抬起第一个指针时 图像将跳转到第二个指针 此 onTouchListene
  • 带有 Android 支持库 v7 的 Maven Android 插件

    我使用 maven android plugin 构建我的 android 应用程序 它依赖于 android 支持库 v4 和 v7 由于我没有找到如何从developer android com下载整个sdk 因此我无法使用maven
  • 吉夫伦致命信号11

    我正在尝试使用一些本机代码来创建 Gif 我使用绘画绘制图像 创建一些笔画 单击 保存 绘制的图像将保存为 JPG 格式 当我单击 创建 Gif 时 它会获取所有图像并开始创建 gif 这是当我收到致命信号 11 并且应用程序重新启动时 我
  • 当路径的点超出视野时,Android Canvas 不会绘制路径

    我在绘制路径时遇到了 Android Canvas 的一些问题 我的情况是 我有一个相对布局工作 如地图视图 不使用 google api 或类似的东西 我必须在该视图上绘制一条路径 canvas drawPath polyPath bor
  • 覆盖 Android 中的电源按钮

    我正在开发一个应用程序 其中我需要在按下电源按钮时执行一个操作 但不幸的是我无法处理按下电源按钮时的操作 我尝试使用 onKeyDown 和dispatchKeyEvent 方法 但似乎没有任何效果 任何人都可以建议我解决这个问题的任何其他
  • Android上如何获取ImageView的Drawable的矩形?

    我想要获取将包裹 ImageView 的 Drawable 的矩形对象 而不是包裹 ImageView 的矩形 我将使用该矩形在 Drawable 周围绘制一些奇特的矩形 我怎样才能得到那个矩形 Rect rect new Rect Ima
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • Android -room 持久库 - DAO 调用是异步的,因此如何获取回调?

    从我读到的Room 不允许您在主线程上发出数据库查询 因为可能会导致主线程延迟 所以想象一下我正在尝试更新 UI 主线程上的文本视图 其中一些数据我将如何得到回调 让我给你举个例子 想象一下 我想将我的业务模型数据存储到一个名为 事件 的对
  • 在新的 intel x86 android 模拟器中访问 google api

    我只是尝试在新的 x86 android 模拟器中运行我公司的应用程序 但是我们的应用程序依赖于 google 地图 API 而这在 google 随 android sdk 版本 17 提供的 x86 系统映像中不可用 我的直觉告诉我答案
  • Android蓝牙java.io.IOException:bt套接字已关闭,读取返回:-1

    我正在尝试编写一个代码 仅连接到运行 Android 5 0 KitKat 的设备上的 目前 唯一配对的设备 无论我尝试了多少方法 我仍然会收到此错误 这是我尝试过的最后一个代码 它似乎完成了我看到人们报告为成功的所有事情 有人能指出我做错
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 在android中,将相机预览流到视图上

    我想将 Android 相机的相机预览流式传输到视图上 目的是随后使用 onDraw 将各种内容添加到视图中 我不需要随时实际捕捉图像 它不必是最高质量或每秒最大数量的帧 有谁知道如何做到这一点 将其添加到您的 xml 中
  • Android:GestureDetector 无法与选项卡(TabActivity、Tabwidget)一起工作(gestureDetector.onTouchEvent(event) 始终为 false)

    我已经用不同的子活动实现了 TabActivity intent new Intent setClass this MyChildTabActiviy class Initialize a TabSpec for each tab and
  • 受信任的网络活动 - 地址栏不隐藏(Android 72 的 Chrome)

    我已经关注了this https developers google com web updates 2017 10 using twa了解如何使用受信任的 Web 活动的指南 一切正常 但地址栏仍然出现 一开始我认为这是因为当应用程序正在
  • jetpack compose 是否使用drawable-night 文件夹?

    我们有一个基于视图的 Android 应用程序 其中有一些可绘制对象res drawable文件夹 以及夜间模式的对应文件夹res drawable night folder 使用旧视图时 引用可绘制对象R drawable foo从 XM
  • 如何在android中通过蓝牙向配对设备发送短信?

    在我的应用程序中 我想通过蓝牙发送和接收短信 我可以在列表视图中看到配对设备名称和地址的列表 但是当我尝试向配对设备发送文本时 什么也没有发生 在其他设备中没有收到文本 这是我向配对设备发送消息的代码 private void sendDa
  • 如何访问我的 Android 程序中的联系人

    我正在制作一个短信应用程序 并且想要访问我的 Android 应用程序中的联系人 我想访问联系人 就像他们在实际联系人列表中一样 选择后 我需要返回到我的活动 在其中我可以向该人发送短信 或者是否可以访问存储联系人的数据库 我的代码如下所示

随机推荐

  • java泛型:获取具有泛型参数的类的类

    我很好奇如何进行这项工作 Class
  • R,dplyr:根据条件快速构建互补行列表的函数

    我有一个约 80 000 行 x 26 列的数据集 这些行对应于机器人搭建套件的 SKU 或唯一 ID 这些列对应 26 个不同的机器人部件 一个单元包含了对构建整个机器人的贡献的一部分 行比例的总和可能不会等于 1 0 因为拼搭套装并不总
  • Java (Android) 中的 List 是什么? [复制]

    这个问题在这里已经有答案了 可能的重复 Type 叫什么 https stackoverflow com questions 1286005 what is typetype called List gt 在 java 泛型中意味着什么 h
  • 如何在 MATLAB 中将变量值放入文本字​​符串中?

    我正在尝试编写一个需要两个输入的简单函数 x and y 并将它们传递给其他三个简单的函数 对它们进行加 乘 除操作 然后 主函数应将结果显示为包含以下内容的字符串 x y 以及总数 我认为我对输出参数有些不理解 无论如何 这是我的 可怜的
  • 类存在多个定义

    我正在使用 Kohana 框架 它允许多个类定义 在应用程序和系统子文件夹中 我使用 phpstorm 作为 IDE 它会向我发送消息multiple definitions exist for class 有没有办法告诉 phpStorm
  • 在android中的共享首选项中禁用对话框通知

    我在有铃声的应用程序中有共享偏好 我想禁用通知短信和彩信以及来自应用程序的通知 例如警报通知
  • sql中*是什么意思?

    例如 我知道什么SELECT FROM example table 方法 然而 不知道代码的每一部分的含义 我感到不舒服 SQL 查询的第二部分是您要为所获取的每条记录检索的列的名称 显然 您可以为每个记录检索多个列 并且 仅当您想检索al
  • AngularJS 对许多输入进行数据绑定的方式是什么?

    我正在学习 angularjs 我希望能够让用户输入许多输入 当这些输入被输入list数组元素应该相应改变 我想尝试使用 ngRepeat 指令 但我读到 因为它创建了一个新范围 所以我无法进行数据绑定 div div
  • 如何获取backgroundSession NSURLSessionUploadTask响应

    我已经实现了一个在后台运行的 NSURLSession 因此即使应用程序暂停 它也可以使用系统守护进程继续执行任务 问题是 void URLSession NSURLSession session dataTask NSURLSession
  • 如何以编程方式启用 LAN 唤醒

    有没有办法以编程方式进入 BIOS 并为支持 LAN 唤醒功能的计算机打开该功能 理想情况下 解决方案应该是跨 BIOS 的 但使用单独的解决方案来打击每个主要供应商也是可以的 BIOS 配置是操作系统有意限制的内容 以避免病毒问题 以前有
  • 通过外部“C”链接解决重载问题

    在混合 C C 项目中 我们需要从 C 调用 C 函数 要调用的函数被重载为三个单独的函数 但我们可以从 C 端忽略这一点 我们只需选择最合适的一个并坚持使用该函数 有两种方法可以做到这一点 1 编写一个带有 extern C 函数的小型
  • 升级到 2.4.0 后,Spring Cloud 配置客户端无法从配置服务器获取/加载配置文件

    弹簧云配置客户端无法从中读取配置文件弹簧云配置服务器升级到后2 4 0使用 spring cloud 版本2020 0 0 M6 从 spring boot 2 4 0 版本开始 默认不启用 bootstrapping 需要在你的应用程序中
  • 在 Mac 10.9.2 上安装 WordNet

    我正在尝试在 Mac 操作系统 10 9 2 上安装 WordNet 我尝试过以下方法 配置 make 但期间make我遇到了一些错误 然后我安装了XQuartz 2 7 5 我仍然遇到一些错误make 接下来 我安装了 Xcode 但这仍
  • VHDL-读取HEX文件

    In VHDL 从 HEX 文件初始化 std logic vector 数组 https stackoverflow com questions 20164216 vhdl init std logic vector array from
  • 为什么我们不应该在java中使用受保护的静态

    我正在经历这个问题Java中有没有办法覆盖类变量 https stackoverflow com questions 685300 is there a way to override class variables in java 首先c
  • ListView 项目上的删除按钮

    我开始为 UWP 进行开发 我正在尝试创建一个ListView填充有x bind 现在我想在所有单个项目上创建一个按钮来删除它们 类似于 Windows 10 邮件 我已经创建了
  • 使用字符串值作为变量名[重复]

    这个问题在这里已经有答案了 是否可以使用 String 作为变量名 就像这个例子一样 String musicPlaying music2 Music music1 new Music blaalla Music music2 new Mu
  • 在 Firebase 中构建关系

    我的 Firebase 中有两项 providers and services 我正在尝试找出使用 Firebase 推荐的扁平化架构方法构建和建立关系的最佳方法 我的数据看起来像这样 services hip replacement ti
  • 在java 8中是否可以做一个懒惰的groupby,返回一个流?

    我有一些较大的文本文件 我想通过对其行进行分组来处理它们 我尝试使用新的流媒体功能 例如 return FileUtils readLines parallelStream map collect groupingBy pair gt pa
  • 如何使用 exoplayer 横向全屏播放视频

    我正在使用 exoplayer 在我的 Android 应用程序中播放来自 url 的视频 在纵向中 一切都按预期工作 在活动中使用视图页面 片段和选项卡 我的目标是当用户处于横向状态时全屏播放视频 这意味着只有视频将以横向方式播放 所有其