当前位置: 首页 > news >正文

【AREngine BUG 解决方法】无法获取有效的相机图像尺寸

近期拿了一台 华为mate20 Pro的手机,在运行AR示例的过程中出现了黑屏。

问题排查

SDK版本:com.huawei.hms:arenginesdk:3.7.0.3

定位

经排查,发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。

这里的期望结果是 1440 x 1080。

在这里插入图片描述

API参考

查阅API参考,发现文档中关于getImageDimensions的描述中,新增以下注意事项:
在这里插入图片描述
转至setPreviewSize()方法描述。

在这里插入图片描述

解决方法

修改

根据API文档的描述,在ARConfigBase创建的地方,调用了config.setPreviewSize(1440,1080);

但是在后续的步骤中,仍然无法通过getImageDimensions()方法获取到width、height的有效值。

思考

此前开发用的Huawei Mate 20,AR示例运行正常。

这款设备既支持ARCore,又支持AREngine。2018年->2020年期间,华为发布的手机大都支持ARCore。

现使用Mate 20 Pro,出现黑屏问题。

猜想
这可能跟设备有关,支持的设备列表中的设备都是经过验证的。其它机型或许会有问题。

并未在AREngine的支持设备列表中,找到’Mate 20 Pro’这型号。

在这里插入图片描述
AR Engine支持的设备列表

最终办法

设置输入预览流分辨率,默认分辨率为(1440x1080),若某些机型在后续的步骤中,无法通过ARCameraIntrinsics对象获取相机尺寸,那就赋默认值。

ARConfig创建

            config = new ARWorldTrackingConfig(session);//设置输入预览流分辨率,默认分辨率为(1440x1080)//此外还支持宽高比为4:3的物理相机预览分辨率。config.setPreviewSize(1440,1080);

Texture初始化时

        ARCamera arCamera = frame.getCamera();ARCameraIntrinsics intrinsics = arCamera.getCameraImageIntrinsics();int[] dimensions = intrinsics.getImageDimensions();int width ,height ;if (ARPlatForm.isArCore()){width = dimensions[0];//1440;height = dimensions[1];//1080;}else{if (dimensions[0] == 0 && dimensions[1] == 0){width = 1440;height = 1080;}else {width = Math.max(dimensions[1],dimensions[0]);height = Math.min(dimensions[1],dimensions[0]);}}cameraTexture = new ExternalTexture(cameraTextureId, width, height);
http://www.lryc.cn/news/364275.html

相关文章:

  • 植物大战僵尸杂交版2.0.88最新版+防闪退工具V2+修改工具+高清工具
  • 面试题:说说你对 JS 中 this 指向的了解
  • 分享一个实用的MySQL一键巡检脚本
  • 【动手学深度学习】卷积神经网络CNN的研究详情
  • 2024年数字化经济与智慧金融国际会议(ICDESF 2024)
  • kafka-消费者服务搭建配置简单消费(SpringBoot整合Kafka)
  • C++STL---list常见用法
  • MQTT.FX的使用
  • SRS、ZLMediakit音视频流媒体服务器
  • 大模型Prompt-Tuning技术进阶
  • 统一响应,自定义校验器,自定义异常,统一异常处理器
  • 完整状态码面试背
  • QT+FFmpeg+Windows开发环境搭建(加薪点)
  • Linux 主机一键安全整改策略
  • Hot100——二叉树
  • C++ static_cast、dynamic_cast、const_cast 和 reinterpret_cast 用处和区别
  • 三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图
  • curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL
  • Spring Security 注册过滤器关键点与最佳实践
  • 力扣2024.考试的最大困扰度
  • java配置文件解析yml/xml/properties文件
  • grpc接口调用
  • 通信技术振幅键控(ASK)调制与解调硬件实验
  • 自动化办公02 用openpyxl库操作excel.xlsx文件(新版本)
  • 用户反馈解决方案 —— 兔小巢构建反馈功能
  • git 下载失败
  • 力扣1438.绝对差不超过限制的最长连续子数组
  • 如何避免Python中默认参数带来的陷阱
  • 代码随想录算法训练营第五十天|198.打家劫舍、213.打家劫舍II、337.打家劫舍III
  • VB.net 进行CAD二次开发(二)