【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);
相关文章:
【AREngine BUG 解决方法】无法获取有效的相机图像尺寸
近期拿了一台 华为mate20 Pro的手机,在运行AR示例的过程中出现了黑屏。 问题排查 SDK版本:com.huawei.hms:arenginesdk:3.7.0.3 定位 经排查,发现(ARCamera对象的相机内参) getImageDimensions()返回的图像尺寸的width和height都为0。 这…...
植物大战僵尸杂交版2.0.88最新版+防闪退工具V2+修改工具+高清工具
植物大战僵尸杂交版,不仅继承原作的经典玩法,而且引入了全新的植物融合玩法,将各式各样的植物进行巧妙的杂交,孕育出前所未有、功能各异的全新植物。 创新的杂交合成系统 游戏引入了创新的杂交合成系统,让玩家可以将不…...
面试题:说说你对 JS 中 this 指向的了解
面试题:说说你对 JS 中 this 指向的了解 JS 的代码执行环境分为严格模式和非严格模式,可以通过 use strict 打开严格模式,此时 JS 在语法检查上会更加严格。要讨论 JS 中的 this 指向问题,也要分为严格模式和非严格模式进行讨论。…...
分享一个实用的MySQL一键巡检脚本
今日分享一个实用的MySQL一键巡检脚本,脚本内容还不是很完善,后续会继续进行优化。大家可以先在测试环境执行,确认执行没问题后可以在生产环境进行操作,问题的可以私信我。 MySQL一键巡检脚本的作用主要是帮助数据库管理员快速且…...
【动手学深度学习】卷积神经网络CNN的研究详情
目录 🌊1. 研究目的 🌊2. 研究准备 🌊3. 研究内容 🌍3.1 卷积神经网络 🌍3.2 练习 🌊4. 研究体会 🌊1. 研究目的 特征提取和模式识别:CNN 在计算机视觉领域被广泛用于提取图像…...
2024年数字化经济与智慧金融国际会议(ICDESF 2024)
2024 International Conference on Digital Economy and Smart Finance 【1】大会信息 大会时间:2024-07-22 大会地点:中国成都 截稿时间:2024-07-10(以官网为准) 审稿通知:投稿后2-3日内通知 会议官网:h…...
kafka-消费者服务搭建配置简单消费(SpringBoot整合Kafka)
文章目录 1、使用efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本2、创建生产者发送消息3、application.yml配置4、创建消费者监听器5、创建SpringBoot启动类6、屏蔽 kafka debug 日志 logback.xml7、引入spring-kafka依赖 1、使用efak 创建 主题 my_topic1 并…...
C++STL---list常见用法
C STL中的list list是C标准模板库(STL)中的一个序列容器,它实现了一个双向链表。与vector和deque相比,list支持快速的任意位置插入和删除操作,但不支持快速随机访问。 基本操作 创建和初始化 #include <list> …...
MQTT.FX的使用
背景 在如今物联网的时代下,诞生了许多的物联网产品,这些产品通过BLE、WIFI、4G等各种各样的通信方式讲数据传输到各种各样的平台。 除了各个公司私有的云平台外,更多的初学者会接触到腾讯云、阿里云之类的平台。设备接入方式也有着多种多样…...
SRS、ZLMediakit音视频流媒体服务器
SRS、ZLMediakit都是做为webrtc的SFU(selective forward unit) WebRTC 开发实践:为什么你需要 SFU 服务器 https://mp.weixin.qq.com/s?__bizMzAxNTc1MjM0Mw&mid2652213442&idx1&sn33f0393a2dbc2b6a39c613bb238ec145&chksm…...
大模型Prompt-Tuning技术进阶
LLM的Prompt-Tuning主流方法 面向超大规模模型的Prompt-Tuning 近两年来,随之Prompt-Tuning技术的发展,有诸多工作发现,对于超过10亿参数量的模型来说,Prompt-Tuning所带来的增益远远高于标准的Fine-tuning,小样本甚至…...
统一响应,自定义校验器,自定义异常,统一异常处理器
文章目录 1.基本准备(构建一个SpringBoot模块)1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有co…...
完整状态码面试背
{"100": "继续","101": "切换协议","102": "处理中","103": "早期提示","200": "成功","201": "已创建","202": "已接受",&qu…...
QT+FFmpeg+Windows开发环境搭建(加薪点)
01、Windows 环境搭建 FFMPEG官网:http://ffmpeg.org/ 02、下载4.2.1版本源码 源码:https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 03、下载4.2.1编译好的文件 下载已经编译好的FFMPEG)(迅雷下载很快) 网址:https://ffmpeg.zeranoe.com/builds/ 32位下载地址:(迅雷…...
Linux 主机一键安全整改策略
为防止linux主机被恶意攻击,和受到攻击后能更快定位到源头,需要对linux主机做一些参数配置。 比如禁用root的远程登录、用户多次密码验证失败后被锁、禁止系统账号交互式登录等等。 下面是linux主机安全整改的一些简单介绍,最后会通过脚本一…...
Hot100——二叉树
树的定义: public static class TreeNode{int val;TreeNode left;TreeNode right;TreeNode(){};TreeNode(int val){ this.val val; };TreeNode(int val, TreeNode left, TreeNode right){this.val val;this.left left;this.right right;}} 深度优先遍历&#x…...
C++ static_cast、dynamic_cast、const_cast 和 reinterpret_cast 用处和区别
在 C 中,static_cast、dynamic_cast、const_cast 和 reinterpret_cast 是四种类型转换运算符,它们各自有不同的用途和行为: static_cast 用于编译时已知类型的转换,如基本数据类型转换、派生类到基类的转换、指针和引用的转换等…...
三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图
官网demo地址: Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型,通常用于表示地理数据中的密度或强度。例如,它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…...
curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL
source ~/.bash_profile flutter clean Command exited with code 128: git fetch --tags Standard error: 错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8) 错误:预期仍然需要 2737 个字节的正文 fetch-pack: unexpec…...
Spring Security 注册过滤器关键点与最佳实践
在 Spring Security 框架中,注册过滤器是实现身份验证和授权的关键组件。正确配置和使用注册过滤器对于确保应用程序的安全性至关重要。以下是一些关于 Spring Security 注册过滤器的注意事项和最佳实践。 过滤器链顺序: 注册过滤器通常位于过滤器链的末…...
3个步骤解决华硕笔记本风扇异常:G-Helper智能散热控制指南
3个步骤解决华硕笔记本风扇异常:G-Helper智能散热控制指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix…...
Hunyuan-MT Pro快速上手:添加语音输入/输出模块(Whisper+VITS)扩展方案
Hunyuan-MT Pro快速上手:添加语音输入/输出模块(WhisperVITS)扩展方案 1. 项目概述与扩展价值 Hunyuan-MT Pro是一个基于腾讯混元大模型的多语言翻译终端,原本专注于文本翻译。但实际使用中,我们经常遇到这样的场景&…...
突破网盘限速壁垒:ctfileGet实现技术民主化的创新实践
突破网盘限速壁垒:ctfileGet实现技术民主化的创新实践 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 在数字资源高速流通的今天,网盘服务已成为信息传递的重要基础设施。然而&a…...
从到的木马免杀之旅(过卡巴)
开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...
文墨共鸣大模型开源项目协作:GitHub Issue分析与PR描述生成
文墨共鸣大模型开源项目协作:GitHub Issue分析与PR描述生成 1. 引言:开源项目维护的“甜蜜负担” 如果你维护过一个稍微有点人气的开源项目,大概能懂这种感受:每天打开GitHub,通知栏里塞满了新消息。有用户提了个Iss…...
小白友好:Neeshck-Z-lmage_LYX_v2部署教程,详解显卡驱动兼容性与CUDA锁定
小白友好:Neeshck-Z-lmage_LYX_v2部署教程,详解显卡驱动兼容性与CUDA锁定 1. 工具简介:为什么选择它? 想体验一款功能强大、操作简单的国产文生图工具,却总在环境配置这一步卡住?特别是显卡驱动和CUDA版本…...
OpenClaw+Phi-3-vision低成本自动化:自部署多模态模型替代云服务
OpenClawPhi-3-vision低成本自动化:自部署多模态模型替代云服务 1. 为什么选择本地多模态模型 去年我接手了一个自动化内容处理的项目,需要频繁调用多模态API分析图片和文档。当看到第三个月的账单时,我意识到必须寻找替代方案——云服务按…...
开箱即用!Retinaface+CurricularFace人脸识别镜像一键部署与测试
开箱即用!RetinafaceCurricularFace人脸识别镜像一键部署与测试 你是否曾对复杂的人脸识别项目望而却步?面对PyTorch、CUDA版本冲突、模型下载和环境配置的层层阻碍,是不是感觉还没开始写代码,精力就已经耗尽了?今天&…...
OpenClaw+Qwen3-4B创意写作:自媒体内容批量生成方案
OpenClawQwen3-4B创意写作:自媒体内容批量生成方案 1. 为什么需要自动化内容创作 作为一个自媒体运营者,我每天最头疼的就是内容创作。从选题策划到草稿撰写,再到格式调整和平台适配,整个过程耗时耗力。尤其当需要同时维护多个平…...
掌握Rustaceanvim工作区管理:符号搜索、模块导航和依赖分析全攻略
掌握Rustaceanvim工作区管理:符号搜索、模块导航和依赖分析全攻略 【免费下载链接】rustaceanvim 🦀 Supercharge your Rust experience in Neovim! A heavily modified fork of rust-tools.nvim 项目地址: https://gitcode.com/gh_mirrors/ru/rustace…...
