HarmonyOS 鸿蒙Next相机预览流拍照返回结果耗时太长

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

HarmonyOS 鸿蒙Next相机预览流拍照返回结果耗时太长

从photoOuptPut.capture()到收到拍照结果耗时1s~2s,太长。是否有优化的措施?

2 回复
如果关心拍照的速度,可以使用分段式拍照,

请参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/camera-deferred-capture-V5

请参考实践:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/camera-deferred-capture-case-V5

请参考最佳实践:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-camera-shot2see-V5

分段式拍照是应用下发拍照任务后,系统将分多阶段上报不同质量的图片。在一阶段,系统快速上报低质量图,应用通过on(type: 'photoAssetAvailable', callback: AsyncCallback<photoAccessHelper.PhotoAsset>): void接口会收到一个PhotoAsset对象,通过该对象可调用媒体库接口,读取图片或落盘图片。在二阶段,分段式子服务会根据系统压力以及定制化场景进行调度,将后处理好的原图回传给媒体库,替换低质量图。

问题1:依据上述,分段式返回的photoAsset.uri是张低质量缩略图,单后续阶段会用处理的图片替换低质量图,可以直接设置到预览页

问题2:依据上述,可以直接使用第一步的photoAsset.uri,但是最好还是调photoAccessHelper.MediaAssetManager.requestImageData(),

问题3:需要调用assetChangeRequest.saveCameraPhoto()存储到相册,该uri的图片不会出现在相机相册里面,app不需要管理该uri的缓存之类的。

请参考最佳实践:https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-camera-shot2see-V5

如果不调用assetChangeRequest.saveCameraPhoto(),照片将不能存储到相机相册里面

更多关于HarmonyOS 鸿蒙Next相机预览流拍照返回结果耗时太长的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next相机预览流拍照返回结果耗时太长的问题可能由多种因素导致。以下是一些可能的原因及排查方向:

  1. 图像处理算法:拍照后,系统需要对图像进行一系列处理,如降噪、白平衡调整等。若算法复杂度高,会直接导致处理耗时增加。

  2. 存储性能:拍照结果需要被保存到存储设备中,若存储设备读写速度较慢,或系统对存储的访问受到其他进程干扰,也会影响保存速度。

  3. 系统资源占用:若系统同时运行多个高资源占用进程,可能导致相机预览流拍照处理得不到足够的CPU或内存资源,从而延长处理时间。

  4. 相机驱动及硬件性能:相机驱动的效率以及硬件性能(如ISP处理速度)也是影响拍照返回结果耗时的重要因素。

  5. 系统优化:鸿蒙系统可能存在针对特定场景的优化不足,导致在某些情况下拍照处理耗时较长。

针对上述问题,可以尝试通过优化图像处理算法、提升存储性能、合理分配系统资源、更新相机驱动及硬件升级等方式进行改善。但具体解决方案需结合实际情况进行排查和测试。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部