HarmonyOS 鸿蒙Next 使用Camera Kit进行拍照后,系统相册未刷新出图片

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

HarmonyOS 鸿蒙Next 使用Camera Kit进行拍照后,系统相册未刷新出图片

使用Camera Kit进行拍照后,打开系统相册并未有刷新出图片,请问是否有办法在拍照后通知相册刷新

1、调用photoOutput的capture方法,在photoOutput.on(‘photoAvailable’, callback) 回调中拿到buffer

2、转换成PixelMap,使用photoAccessHelper.PhotoAccessHelper进行保存 

async ImageWriteToAlbum(pixelMap ? : image.PixelMap) {
let context = getContext(this);
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
let photoType: photoAccessHelper.PhotoType = photoAccessHelper.PhotoType.IMAGE;
let extension: string = ‘png’;
let options: photoAccessHelper.CreateOptions = { title: new Date().getTime().toString() }
let uri = await phAccessHelper.createAsset(photoType, extension, options)
console.error("uri: " + uri)
try {
if (pixelMap) {
let file: fs.File = fs.openSync(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
let imagePacker: image.ImagePacker = image.createImagePacker();
let packOpts: image.PackingOption = { format: ‘image/png’, quality: 100 };
await imagePacker.packToFile(pixelMap, file.fd, packOpts);
fs.closeSync(file);
}
promptAction.showToast({ message: ‘已保存至相册’, duration: 2000 });
} catch (err) {
console.error("error is " + JSON.stringify(err))
promptAction.showToast({ message: ‘保存失败’, duration: 2000 });
}
}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>


更多关于HarmonyOS 鸿蒙Next 使用Camera Kit进行拍照后,系统相册未刷新出图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
可尝试下如下方案

添加 imagePacker.release()

     let imagePacker: image.ImagePacker = image.createImagePacker();

        let packOpts: image.PackingOption = { format: ‘image/png’, quality: 100 };

        await imagePacker.packToFile(pixelMap , file.fd, packOpts);

        fs.closeSync(file);

        imagePacker.release()<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

更多关于HarmonyOS 鸿蒙Next 使用Camera Kit进行拍照后,系统相册未刷新出图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next 使用Camera Kit进行拍照后,系统相册未刷新出图片的问题,可能是由于拍照后图片未正确保存到系统相册的指定目录,或者相册应用未检测到新图片文件的添加。

  1. 检查保存路径:确保拍照后图片保存的路径是系统相册能够扫描到的公共目录,如外部存储的DCIM或Pictures文件夹下。如果保存在应用私有目录,系统相册通常无法直接访问。

  2. 触发媒体扫描:在图片保存后,可以调用系统的媒体扫描接口,通知相册应用有新文件添加。这通常通过发送广播或使用MediaScannerConnection类实现。

  3. 权限问题:确认应用已获取写入外部存储的权限,且用户已授权。在鸿蒙系统中,权限管理可能更为严格,需要特别注意。

  4. 相册应用缓存:有时系统相册的缓存可能导致图片未能及时显示,尝试重启相册应用或设备看是否能解决问题。

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

回到顶部