网络图片下载到图库---网络视频同理

SaveButton().backgroundColor(Color.White).height(50).fontSize(14).iconColor('#333').fontColor('#333333').onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => {

  if (result == SaveButtonOnClickResult.SUCCESS) {

    try {

      if (this.clickAction) {

        this.clickAction(index)

      }

      this.controller.close()

    } catch (err) {

      console.error("error is " + JSON.stringify(err))

    }

  } else {

    AlertDialog.show({ message: "设置权限失败" })//这里涉及到安全控件的要求 仔细看文档 不要轻易改变空间的背景色间距 大小

  }

})

loadVideoWithUrl(url:string) {

  // 使用request下载图片并在回调函数中保存图片到相册

  http.createHttp().request(url,

    {

      method:http.RequestMethod.GET,

      connectTimeout:60000,

      readTimeout:60000,

      // expectDataType: 2,//---.MP4使用这个

    },

    async (error: BusinessError, data: http.HttpResponse) => {

      if (error) {

        console.error(`http reqeust failed with. Code: ${error.code}, message: ${error.message}`);

      } else {

        if (HttpConstants.SUCCESS_CODE === data.responseCode) {

          let videoBuffer: ArrayBuffer = data.result as ArrayBuffer;

          try {

            // 获取相册路径

            const context = getContext(this);

            let helper = photoAccessHelper.getPhotoAccessHelper(context);

            let uris=url.split('.')

            let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, uris[uris.length-1])//图片类别以及图片的后缀名.png.mp4

            let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE)

            // 写入文件

            await fs.write(file.fd, videoBuffer);

            // 关闭文件

            await fs.close(file.fd);

            ToastUtil.showToast('已保存至相册');

          } catch (error) {

            console.error("error is "+ JSON.stringify(error))

          }

        } else {

          console.error("error occurred when image downloaded!")

        }

}

    })

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容