项目中发现使用JZVideo(Github地址)的View播放视频,就算把View所在的Activity的屏幕方向设置为重力感应,视频结束后点击重播也会被改为竖屏并且重力感应设置失效。

7.1.0版本会有此bug,后续版本已经修复,7.6.0测试正常

断点后发现,原因如下。

  1. 点击重播的按钮,调用了JZVideoPlayer中OnClick方法中R.id.start的逻辑,走到了currentState == CURRENT_STATE_AUTO_COMPLETE中的startVideo()
  2. startVideo()中调用了JZVideoPlayerManager.completeAll();,继续调用了FIRST_FLOOR_JZVD.onCompletion();
  3. onCompletion()中有一行关键代码:JZUtils.setRequestedOrientation(getContext(), NORMAL_ORIENTATION);
  4. 这个方法里会执行JZUtils.getAppCompActivity(context).setRequestedOrientation(orientation);,而JZVideoPlayer这个类中,声明了public static int NORMAL_ORIENTATION = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;,因此会导致点击重播,被强制竖屏了。

方法一:可以写个类继承JZVideoPlayerStandard,然后重写onCompletion方法,如下。

 @Overridepublic void onCompletion() {super.onCompletion();//此代码用于解决重播时会强制横屏JZUtils.setRequestedOrientation(getContext(), FULLSCREEN_ORIENTATION);}

方法二:直接在JZVideoPlayerStandard的子类中将JZVideoPlayer的NORMAL_ORIENTATION变量值改为全屏使用的。

        JZVideoPlayer.NORMAL_ORIENTATION = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE;//将视频的默认方向设为横屏

解决JZPlayer7.1.0版本点击重播后强制竖屏相关推荐

  1. 解决 Electron 5.0 版本出现 require is not defined 的问题

    解决 Electron 5.0 版本出现 require is not defined 的问题 参考文章: (1)解决 Electron 5.0 版本出现 require is not defined ...

  2. 解决windows下合上、掀开笔记本盖子后屏幕黑屏的问题

    解决windows下合上.掀开笔记本盖子后屏幕黑屏的问题 参考文章: (1)解决windows下合上.掀开笔记本盖子后屏幕黑屏的问题 (2)https://www.cnblogs.com/marioc ...

  3. 解决Creo 5.0在打开stl模型后,无法查看左视图,右视图

    问题 我的Creo 5.0在打开stl模型后,无法查看左视图,右视图,上视图等,现在总结一下解决办法. 解决办法 前视图的设置 导入模型,名字为bool,点击bool,创建平面 前视图,是从y方向看的 ...

  4. android微信电话锁屏,解决 Android 7.0 系统中,微信无法在锁屏画面显示

    文章版块:HTC One A9 在 Android 7.0 系统中htc手机微信怎么截屏htc手机微信怎么截屏,会出现微信无法在锁屏画面显示的状况.建议您进行下面修改就可以解决: 进入"HT ...

  5. 解决有重力感应的设备装Ubuntu时默认竖屏的问题,使之能登录后自动横屏

    前言   本人于大三的时候收购了一台二手台电Tbook10s,原装是win10和Android5双系统,后来因为Android版本太落后,清空硬盘装了win10单系统,看点视频写点文档,可堪一用.   ...

  6. iOS界面 点击按钮切换横屏竖屏

    首先,看效果图: 在这里因为是要全局界面都是支持竖屏,其他的不支持,在Xcode里面的配置 然后就是在AppDelegate中添加属性和方法 这个是viewController中,即需要转换屏幕方向的 ...

  7. 解决R 4.0版本包的安装错误

    R 4.0.2版本edgeR包的安装 2020年6月22日,R官网发布了版本4.0.2的R软件,具体更新了什么内容,待后续挖掘.作为一名流行病与卫生统计学硕士.刚入门的R小白,比较关注的是应用问题.这 ...

  8. 【已解决】Android5.0版本如何打开调试模式

    解决方法: 设置->关于手机->Android版本(双击此处,直到提示已经处于开发者模式) 返回上一级,进入其他高级设置->开发者选项->USB调试(勾选) 此时,已经搞定,赶 ...

  9. 解决cocos2d-X 2.0版本后创建的Android项目提示org.cocos2dx.lib.Cocos2dxActivity找不到问题...

    原地址: http://blog.163.com/zhoulong19880518@126/blog/static/6070970220132511558143/ 解决方法:     复制 ***\c ...

最新文章

  1. 将CAD图纸转换出来的图片怎么设置其为高清JPG格式?
  2. 分步骤学习自动化测试
  3. Sql Server 性能分析4 –数据库大小,数据库表大小综合性分析报表输出
  4. drools规则引擎因为内存泄露导致的内存溢出
  5. python入门系列:深入Python的set和dict
  6. 扩展Snackbar 使其支持居中显示
  7. datatables隐藏列设置及获取隐藏列的值
  8. doc文件转换html,HTML+CSS入门 如何使用POI将doc文件转换为HTML
  9. php aes 3des区别,AES和3DES之间的区别
  10. win10电子邮件没有关联_我们如何为在线课程建立10K电子邮件列表
  11. T-SQL: Adding More to Our Queries
  12. 为一路通(16tone)开博
  13. linux下Led的设备驱动程序实验总结,Linux让LED灯闪起来
  14. 浅谈第三方电子支付平台测试方法的研究
  15. 杭电OJ分类题目(3)
  16. js隐藏和显示div
  17. android 悬浮按钮 功能实现,Android自定义悬浮按钮效果实现,带移动效果
  18. php的一些编码问题
  19. 数学知识在计算机专业的运用,数学在计算机科学及应用中的作用分析
  20. 中国三大石油公司信息化进展

热门文章

  1. python dataframe loc函数_详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)...
  2. 《Scrum敏捷游戏开发》读书笔记
  3. Tracking Learning Detection (TLD)目标跟踪算法原理详解~PPT版
  4. centos7 桌面程序自动启动
  5. vmware虚拟机安装Linux Mint 20全过程
  6. Spring/SpringBoot常用注解总结!
  7. JAVA毕业设计HTML5运河古城网站计算机源码+lw文档+系统+调试部署+数据库
  8. SparkStreaming消费kafka数据时出现序列化问题 org.apache.kafka.common.serialization.StringDeserializer could not b
  9. 2020校招学习之路分享————MySQL篇
  10. 华为发布下一代产品战略123456及+AI系列新品