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
4天前
浏览
收藏 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
微信
回复
4天前
相关问题
HarmonyOS cocos引擎能否二次启动
267浏览 • 1回复 待解决
HarmonyOS获取公共下载目录api不可用
299浏览 • 1回复 待解决
烧录3516以后报/bin/init不可用
8120浏览 • 1回复 待解决
如何让最大化按钮不可用
2053浏览 • 1回复 待解决
class二次刷新渲染数组
635浏览 • 1回复 待解决
实现二次侧滑退出应用
1708浏览 • 1回复 待解决
WINDOWS版本的hdc_std.exe不可用
3685浏览 • 3回复 待解决
启动模拟器,提示VT/NX不可用
625浏览 • 1回复 待解决
如何检测相机可用状态?
30浏览 • 0回复 待解决
华为账号实时验证/二次放号相关咨询
1625浏览 • 1回复 待解决
【求助】自定义相机Camera2焦距异常
7855浏览 • 1回复 待解决