在使用Better player的旋转功能时,可能会遇到旋转按钮点击和设备方向变化之间的冲突。为避免这种情况出现,我们可以通过代码示例中的方法来解决。
首先,需要在代码中声明变量用于判断是否是通过旋转按钮来进行屏幕旋转的。
private var isRotationButtonClick = false
然后,在旋转按钮的点击事件中,将上述变量设置为true。
rotationButton.setOnClickListener {
isRotationButtonClick = true
playerView.getPlayer().videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING
playerView.doScreenOrientationChange()
playerView.getPlayer().videoScalingMode = C.VIDEO_SCALING_MODE_SCALE_TO_FIT
}
接着,在屏幕方向变化的回调方法中,增加一条判断,如果是通过旋转按钮进行的屏幕旋转,则不进行旋转。
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
if (!isRotationButtonClick) {
playerView.doScreenOrientationChange()
} else {
isRotationButtonClick = false
}
}
这样,通过前述的操作,可以解决Better player旋转功能在旋转按钮和设备方向变化之间的冲突问题。