之前写了一个简单的视频播放器:
https://blog.csdn.net/intbird/article/details/105970536
里面考虑了一个屏幕方向的问题, 现在来简单实现一下
1. 问题来源
- 如果始终进行横竖屏切换, 不用其他条件(比如屏幕方向跟随人脸模式):
下面代码的 OrientationEventListener onOrientationChanged
判断屏幕角度 再进行 屏幕方向旋转 即可实现 - 但: 如果手机在竖屏状态下, 人为手动操作切换为横屏(比如播放视频):
此时可以明显看到屏幕旋转路径如下:
竖屏(原始) > 横屏(手动) -> 竖屏(自动检测后进行了恢复)
问题: 这样就导致手动切换后的屏幕方向无效(等于是多此一举)
所以: 自动旋转屏幕需要一些开启和关闭开关
(我看ipad是抖动一下方向回正) - 手机传感器有些许差别,后续还要进行一些调整(传感器类型)
这里简单的用屏幕晃动 45° 内即进行方向切换
2. 实现效果
矿泉水瓶为直立参照物