HarmonyOS 鸿蒙Next:使用cameraManager.getSupportedCameras获取相机列表,得到的列表中仅2个可用摄像头,与真机摄像头数量不符

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:使用cameraManager.getSupportedCameras获取相机列表,得到的列表中仅2个可用摄像头,与真机摄像头数量不符

咨询描述:

用官方示例获取相机列表:

let cameraArray: Array<camera.CameraDevice> = cameraManager.getSupportedCameras()
得到的cameraArray的length是2,再用如下示例打印出摄像头信息:
for (let index = 0; index < cameraArray.length; index++) {
console.info('cameraId : ’ + cameraArray[index].cameraId);                          // 获取相机ID 
console.info('cameraPosition : ’ + cameraArray[index].cameraPosition);              // 获取相机位置 
console.info('cameraType : ’ + cameraArray[index].cameraType);                      // 获取相机类型 
console.info('connectionType : ’ + cameraArray[index].connectionType);              // 获取相机连接类型 
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

打印出的信息如下:

cameraId : device/0
cameraPosition : 1
cameraType : 0
connectionType : 0

cameraId : device/1 cameraPosition : 2 cameraType : 0 connectionType : 0 <button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

问题1cameraArray里是这个手机所有可用的摄像头,为什么只有2个,而不是4个(真机有4个)

问题2:打印出来的摄像头信息,cameraType都是0,既不是广角也不是长焦,但真机的系统相机里有广角和长焦镜头,为什么获取不到。

手机版本:2.0.0.33(SP35C00E33R4P11log)


更多关于HarmonyOS 鸿蒙Next:使用cameraManager.getSupportedCameras获取相机列表,得到的列表中仅2个可用摄像头,与真机摄像头数量不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

解决措施:

接口中将物理摄像头打包成了逻辑摄像头,数组中的两个元素,前置和后置是逻辑摄像头,不可以通过代码区分不同的物理摄像头。

更多关于HarmonyOS 鸿蒙Next:使用cameraManager.getSupportedCameras获取相机列表,得到的列表中仅2个可用摄像头,与真机摄像头数量不符的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


大神请教一下,华为以前的老款手机mate10 p20是带有黑白相机的,这个黑白相机是单独的摄像头, 如何拿到这个黑白相机做三方应用开发啊? 麒麟970, 鸿蒙os 2.0 这个应该还是支持安卓原生开发的吧? 我用安卓的接口拿到只有两个逻辑摄像头,而且后置逻辑摄像头下面也拿不到多个物理摄像头…那我怎么访问控制这个黑白相机的摄像头啊? 是通过集成HMS 还是什么啊? 但是我看相机能力集成需要麒麟980以上…可是我我的mate10是麒麟970 ,怎么办…

针对您提到的HarmonyOS鸿蒙Next系统中使用cameraManager.getSupportedCameras获取相机列表时,得到的列表中仅包含2个可用摄像头,与真机摄像头数量不符的问题,这通常可能由以下几个原因造成:

  1. 权限问题:确保您的应用已正确申请并获得了相机访问权限。缺少必要的权限可能导致系统无法列出所有摄像头。

  2. 设备兼容性:不同设备对摄像头管理的实现可能有所差异。某些设备可能限制了应用访问的摄像头数量,或者部分摄像头仅供系统服务使用。

  3. API限制:您使用的HarmonyOS版本或特定设备的API实现可能限制了可访问的摄像头数量。检查您正在使用的API文档,确认是否有相关限制。

  4. 系统Bug:系统本身可能存在Bug,导致摄像头列表不正确。

HarmonyOS 鸿蒙Next视频详解https://www.itying.com/goods-1205.html

回到顶部