uniapp 横屏全屏播放后退出变成竖屏问题如何解决?
在uniapp中,横屏全屏播放视频后退出全屏时,页面会自动切换回竖屏模式,导致界面显示异常。如何保持退出全屏后仍维持横屏状态?需要兼容iOS和Android平台,求具体解决方案或代码示例。
2 回复
在 UniApp 中,横屏全屏播放视频后退出时出现竖屏问题,通常是由于页面方向未正确恢复导致的。以下是解决方案:
1. 使用 plus.screen 控制屏幕方向
在视频播放器全屏时锁定横屏,退出时恢复竖屏。示例代码如下:
// 进入全屏时锁定横屏
onFullscreenChange(e) {
if (e.fullScreen) {
// 横屏
plus.screen.lockOrientation("landscape");
} else {
// 退出全屏时恢复竖屏
plus.screen.lockOrientation("portrait");
}
}
2. 监听视频播放器事件
在视频组件中监听全屏变化事件:
<video
:fullscreen-change="onFullscreenChange"
src="video.mp4"
></video>
3. 页面生命周期处理
在页面 onHide 或 onUnload 时强制恢复竖屏:
onUnload() {
plus.screen.lockOrientation("portrait");
}
注意事项:
- 确保使用
plus.screenAPI 前检查运行环境(仅 App 端有效)。 - 测试不同机型,部分 Android 设备可能需要额外配置。
- 使用 H5 或小程序时需调用各自平台的 API(如 H5 的
screen.orientation)。
通过以上方法,可解决退出全屏后屏幕方向错误的问题。


