2***@qq.com
2***@qq.com
  • 发布:2024-03-12 16:59
  • 更新:2024-03-12 16:59
  • 阅读:316

【报Bug】iOS下调用摄像头时调整屏幕为横向,显示画面逆转90度

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: macOS Ventura 13.5

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: iOS

手机系统版本号: iOS 17

手机厂商: 苹果

手机机型: iPad Air

页面类型: nvue

vue版本: vue2

打包方式: 离线

项目创建方式: HBuilderX

示例代码:

export default {
data() {
return {
src: ''
}
},
onLoad(options) {
// #ifdef APP-PLUS
// 强制横屏
plus.screen.lockOrientation('landscape')
// 保持屏幕常亮
uni.setKeepScreenOn({
keepScreenOn: true
});
// 保持全屏,无状态栏
plus.navigator.setFullscreen(true)
// 隐藏手机底部导航按键
plus.navigator.hideSystemNavigation()
// #endif
},
onReady() {
// 注意:需要在onReady中 或 onLoad 延时
this.context = uni.createLivePusherContext("livePusher", this);
this.startPreview()
},
onUnload() {
// #ifdef APP-PLUS
// 恢复竖屏
plus.screen.lockOrientation('portrait-primary');
// 关闭保持屏幕常亮
uni.setKeepScreenOn({
keepScreenOn: false
})
// 恢复状态栏
plus.navigator.setFullscreen(false)
// 显示手机底部导航按键
plus.navigator.showSystemNavigation()
// #endif
},
methods: {
startPreview: function() {
this.context.startPreview({
success: (a) => {
console.log("livePusher.startPreview:" + JSON.stringify(a));
}
});
console.log('123' + plus.navigator.isFullscreen())
},
getCamera() {
var cmr = plus.camera.getCamera(1);
console.log('cmr' + JSON.stringify(cmr))
// plus.navigator.setFullscreen(true);
// console.log('123' + plus.navigator.isFullscreen())
setTimeout(() => {
const cameraView = this.$refs.cameraView;

                // 将摄像头画面渲染到页面上的 view 元素中  
                cameraView.$el.appendChild(cmr.stream, 'pop-in');  

            }, 1000)  

        },  
    }  
}

操作步骤:

将页面设置为横屏,同时通过live-pusher等方式调用摄像头显示摄像头画面,通过标准基座将项目运行到ios设备上。

预期结果:

显示内容和屏幕同时旋转90度

实际结果:

屏幕翻转后摄像头显示内容翻转了180度,且显示内容仅包括了同情况下相机显示内容中左上角的一部分。

bug描述:

在ios下调用摄像头时,将屏幕设置为横向,手机画面会比应当显示的画面多旋转了90度,与屏幕方向不一致。

2024-03-12 16:59 负责人:无 分享
已邀请:

要回复问题请先登录注册