开发者社区 问答 正文

【播放器SDK】Android如何实现固定竖屏播放视频


安卓的固定竖屏播放并不受手机是否开启旋转的限制,需要用户设置Activity为固定竖屏。目前带皮肤的播放器内部对竖屏播放视频做了一定的支持.用户使用相对比较简单.


带皮肤播放器


参考Demo代码FixedSkinActivity


1.在onCreate里面设置当前Activity为固定竖屏模式.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
2.在固定竖屏模式需要全屏时需要实现setLockPortraitMode
mAliyunVodPlayerView.setLockPortraitMode(new IAliyunVodPlayer.LockPortraitListener() {
            @Override
            public void onLockScreenMode(int screenMode) {
           //screenMode-->1.切换为小屏 0.切换为全屏
          //用户需要自行解决虚拟机和actionBar的问题.
        }
}


不带皮肤播放器


不带皮肤播放器原理跟带皮肤播放器一样,用户需要自己设置当前Activity为固定竖屏模式.用户如果有切换为全屏的需求开发者需要处理虚拟键盘.




本文为 【问答合集】阿里视频云常见技术问题汇总——内含技术文档40+ 持续更新中 系列文章之一,如果本文还不能解决你的问题可以在汇总合集中查看,有任何问题也欢迎回复,谢谢.

展开
收起
EdgePlus 2017-11-29 15:14:08 4079 分享 版权
阿里云 AI 助理回答

从您的描述来看,您正在使用阿里云视频播放器(Aliyun VOD Player)并关注如何在Android应用中实现固定竖屏播放视频的功能,同时处理全屏和非全屏的切换逻辑。这里是对您提到的两个场景(带皮肤播放器和不带皮肤播放器)的一些建议和补充说明:

带皮肤播放器

  1. 设置Activity为固定竖屏模式: 在onCreate()方法中调用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);确保Activity始终以竖屏显示,不受系统自动旋转设置的影响。

  2. 全屏与非全屏切换: 使用IAliyunVodPlayer.LockPortraitListener接口来监听和控制屏幕模式的变化。在回调中,根据screenMode参数值(0表示全屏,1表示小屏),开发者需要手动处理UI的调整,比如隐藏或显示状态栏、导航栏以及处理虚拟键盘的问题。这可能涉及到调用如getWindow().getDecorView().setSystemUiVisibility(...)等方法来改变系统的UI可见性。

不带皮肤播放器

  • 同样设置Activity为固定竖屏:与带皮肤播放器一致,通过setRequestedOrientation方法设置。

  • 全屏处理更灵活但需自定义:由于没有内置皮肤提供的便捷接口,开发者需要自己实现全屏切换的逻辑,包括监听用户操作(如点击全屏按钮)、调整视图大小、处理系统UI的显示与隐藏。这可能涉及更多自定义代码来适配不同设备和Android版本的行为差异。

补充建议

  • 考虑兼容性和用户体验:在处理全屏时,确保考虑到不同Android版本和厂商定制UI的差异,测试多种设备以保证良好的用户体验。

  • 处理虚拟按键问题:当进入全屏模式时,应隐藏虚拟按键,并在退出全屏时恢复。可以通过监听系统UI变化事件或者直接设置UI可见性来实现。

  • 资源释放与状态恢复:在进行屏幕模式切换时,注意视频播放器的状态管理,避免不必要的资源浪费,确保切换过程中的播放流畅性。

如果您在实施过程中遇到具体的技术难题,可以查阅阿里云视频服务的官方文档或在阿里云开发者社区寻求帮助。希望这些建议对您有所帮助!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答