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

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

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

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

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

最后会在。

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

中得到 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
1658浏览
收藏 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 方法不可用
946浏览 • 1回复 待解决
HarmonyOS Slider如何设置为不可用
1113浏览 • 1回复 待解决
如何让最大化按钮不可用
3135浏览 • 1回复 待解决
HarmonyOS 系统密码保险箱不可用
1079浏览 • 1回复 待解决
HarmonyOS aioxs二次封装
1234浏览 • 1回复 待解决
HarmonyOS 权限二次申请
1288浏览 • 1回复 待解决
烧录3516以后报/bin/init不可用
9526浏览 • 1回复 待解决
启动模拟器,提示VT/NX不可用
1953浏览 • 1回复 待解决
HarmonyOS获取公共下载目录api不可用
1707浏览 • 1回复 待解决
HarmonyOS getStringByName方法二次封装
1247浏览 • 1回复 待解决
class二次刷新渲染数组
1776浏览 • 1回复 待解决
WINDOWS版本的hdc_std.exe不可用
5005浏览 • 3回复 待解决
so文件第二次加载错误如何处理
890浏览 • 0回复 待解决
HarmonyOS cocos引擎能否二次启动
1438浏览 • 1回复 待解决
HarmonyOS Camera Kit相机问题
1536浏览 • 1回复 待解决
HarmonyOS 相机采集吐问题
752浏览 • 1回复 待解决
HarmonyOS SM4加解密工具升级后不可用
1501浏览 • 1回复 待解决
实现二次侧滑退出应用
3175浏览 • 1回复 待解决
恭喜您,今日已阅读两篇内容,特奖励+2声望, 快来领取吧。