HarmonyOS 沙盒中的图片和视频移动/拷贝到系统相册中?

应用中生成了一张图片/视频文件,需要在系统相册中能看到这图片和视频,fs.moveFile只支持沙盒内文件路径的移动,是否有其他方案,是否有相关代码demo

阅读 726
1 个回答

视频保存到相册方法,入参为视频的沙箱路径

async  videoWriteAlbumExample2(fileUri:string) {
    console.info('createVideoAssetRequestDemo:' + fileUri);
    let context = getContext(this);
    try {
      // 需要确保fileUri对应的资源存在
      let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
      let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createVideoAssetRequest(context, fileUri);
      await phAccessHelper.applyChanges(assetChangeRequest);
      console.info('apply createVideoAssetRequest successfully');
      promptAction.showToast({
        message: '已保存至相册',
        duration: 2500
      });
    } catch (err) {
      console.error(`createVideoAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
      promptAction.showToast({
        message: '保存失败',
        duration: 2000
      });
    }
  }

图片保存到相册方法,入参为图片的沙箱路径

async  imageWriteAlbumExample2(fileUri:string) {
    console.info('createImageAssetRequestDemo:' + fileUri);
    let context = getContext(this);
    try {
      // 需要确保fileUri对应的资源存在
      let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
      let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri);
      await phAccessHelper.applyChanges(assetChangeRequest);
      console.info('apply createVideoAssetRequest successfully');
      promptAction.showToast({
        message: '已保存至相册',
        duration: 2500
      });
    } catch (err) {
      console.error(`createVideoAssetRequestDemo failed with error: ${err.code}, ${err.message}`);
      promptAction.showToast({
        message: '保存失败',
        duration: 2000
      });
    }
  }

具体参考文档如下:

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-photoaccesshelper-V5\#createimageassetrequest11

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进