HarmonyOS 鸿蒙Next 有关使用xComponent的surfaceId通过createPixelMapFromSurface创建pixelMap失败的问题
HarmonyOS 鸿蒙Next 有关使用xComponent的surfaceId通过createPixelMapFromSurface创建pixelMap失败的问题
// 创建预览输出流,其中参数 surfaceId 参考上文 XComponent 组件,预览流为XComponent组件提供的surface
try {
this.previewOutput = this.getPreviewOutput(this.cameraManager, this.surfaceId);
} catch (error) {
let err = error as BusinessError;
console.error(Failed to create the PreviewOutput instance. error code: <span class="hljs-subst">${err.code}</span>
);
}
然后通过试图拿到Xcomponent的当前pixelMap 进行人脸识别
const pixelMap = await image.createPixelMapFromSurface(surfaceId,
{ size: { height: WindowUtils.windowWidth_px * 16 / 9, width: WindowUtils.windowWidth_px }, x: 0, y: 0 })
但实际上会卡在获取pixelMap的这一步,在调换获取pixelMap 与输出流的执行顺序之后,发现输出流并未正确渲染在Xcomponent上,另外在修改前的代码中,代码会因为createPixelMapFromSurface抛出62980178的错误,希望能帮遇到相同问题的人避开这个坑。
更多关于HarmonyOS 鸿蒙Next 有关使用xComponent的surfaceId通过createPixelMapFromSurface创建pixelMap失败的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
感谢分享~
更多关于HarmonyOS 鸿蒙Next 有关使用xComponent的surfaceId通过createPixelMapFromSurface创建pixelMap失败的问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
针对HarmonyOS 鸿蒙Next中,使用xComponent的surfaceId通过createPixelMapFromSurface
创建pixelMap失败的问题,可能的原因及解决方案如下:
-
权限问题:确保应用已获取必要的权限,包括访问Surface和创建PixelMap的权限。权限缺失可能导致创建失败。
-
Surface状态:检查提供的surfaceId是否有效,以及Surface是否处于可用状态。无效的surfaceId或已释放的Surface将导致创建失败。
-
资源限制:系统资源不足(如内存、GPU资源)也可能导致创建PixelMap失败。确保系统资源充足,或优化应用资源使用。
-
API使用错误:确认
createPixelMapFromSurface
的调用参数正确,包括surfaceId、PixelMap的尺寸和格式等。参数错误或不匹配将导致创建失败。 -
系统兼容性问题:检查当前鸿蒙系统版本是否支持该功能,以及是否存在已知的兼容性问题。系统更新或补丁可能解决此类问题。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。