HarmonyOS 相机帧二次处理,监听到相机不可用 CAMERA_STATUS_UNAVAILABLE

我想进行相机帧二次处理,进行了以下步骤:

第一步:目前我的 demo 为了方便,在主线程创建了 gl 环境,然后创建了一个 Texture 。

第二步:通过 Texture id 创建了 OH_NativeImage ,然后获取他的 Surface Id 传递回 ts 层。

第三步:通过这个 SurfaceId 创建了一个 PreviewOutput ,然后按照相机流程进行开启相机。

最后会在。

cameraManager.on('cameraStatus', (error: BusinessError, statusInfo: camera.CameraStatusInfo) => {});

中得到 CAMERA_STATUS_UNAVAILABLE 的异常,导致相机开不起。

我这边进行了几个测试:

1. 这里 OH_NativeImage 获取的 Surface Id 如果换成 XComponent 的 Surface Id 则可以让相机正常开启。

2. OH_NativeImage Surface Id 获取到的是一个比较长的数值,例如 “180912612442112” 。

3. 我注册了 PreviewOutput 、 CameraInput 错误监听,但是没有收到错误。

我需要怎么进行排查?能否提供一些思路或是可验证的代码?

HarmonyOS
2024-11-12 09:28:49
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

Native 接口 OH_NativeImage_GetSurfaceId(nativeImage_, nativeImageSurfaceId_) 获取的 nativeImageSurfaceId_ ,可以用于 arkts 相机 api 中 CameraManager.createPreviewOutput 获取。

OH_NativeImage Surface Id 获取到的是一个比较长的数值 -> 长数值可以作为 createPreviewOutput 入参

建议升级 OS版本,并使用。

https://gitee.com/GuYueFei/harmonyOSNativeCamera

已于2024-11-12 17:23:37修改
分享
微博
QQ
微信
回复
2024-11-12 17:23:29
相关问题
HarmonyOS ioctl 方法不可用
224浏览 • 1回复 待解决
HarmonyOS Slider如何设置为不可用
233浏览 • 1回复 待解决
HarmonyOS 系统密码保险箱不可用
75浏览 • 1回复 待解决
烧录3516以后报/bin/init不可用
8458浏览 • 1回复 待解决
HarmonyOS获取公共下载目录api不可用
708浏览 • 1回复 待解决
WINDOWS版本的hdc_std.exe不可用
4064浏览 • 3回复 待解决
HarmonyOS 权限二次申请
215浏览 • 1回复 待解决
HarmonyOS aioxs二次封装
353浏览 • 1回复 待解决
如何让最大化按钮不可用
2321浏览 • 1回复 待解决
HarmonyOS getStringByName方法二次封装
364浏览 • 1回复 待解决
class二次刷新渲染数组
965浏览 • 1回复 待解决
HarmonyOS Camera Kit相机问题
232浏览 • 1回复 待解决
启动模拟器,提示VT/NX不可用
961浏览 • 1回复 待解决
HarmonyOS 相机采集吐问题
170浏览 • 1回复 待解决
HarmonyOS cocos引擎能否二次启动
670浏览 • 1回复 待解决
实现二次侧滑退出应用
2101浏览 • 1回复 待解决