视频链接无法下载,该怎么解决啊?

视频链接无法下载

HarmonyOS
2024-08-22 21:18:20
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

请参考下面demo:

Column() { 
  Button("下载", { type: ButtonType.Capsule, stateEffect: false }) 
    .width('100%') 
    .height(55) 
    .fontSize('15fp') 
    .fontColor('#ffffff') 
    .margin({ top: 20 }) 
  SaveButton().onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => { 
    if (result === SaveButtonOnClickResult.SUCCESS) { 
      http.createHttp().request(// 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定 
        "https://txcdn.peiyinapp.com/Video/samples/10.mp4", 
        { 
          method: http.RequestMethod.GET, // 可选,默认为http.RequestMethod.GET 
          readTimeout: 60000, // 可选,默认为60000ms 
          connectTimeout: 60000, // 可选,默认为60000ms 
          maxLimit: 50 * 1024 * 1024, 
          expectDataType: 2, 
        }, 
        async (err: BusinessError, data: http.HttpResponse) => { 
          console.log(JSON.stringify(data), '下载') 
          if (!err) { 
            let imageBuffer: ArrayBuffer = data.result as ArrayBuffer; 
            try { 
              // 获取相册路径 
              const context = getContext(this); 
              let helper = photoAccessHelper.getPhotoAccessHelper(context); 
              let uri = await helper.createAsset(photoAccessHelper.PhotoType.Video, 'mp4') 
              let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE) 
              // 写入文件 
              await fs.write(file.fd, imageBuffer); 
              // 关闭文件 
              await fs.close(file.fd); 
              console.info("success ") 
            } catch (error) { 
              console.error("error is " + JSON.stringify(error)) 
            } 
          } else { 
            console.error("error occurred when image downloaded!") 
          } 
        }); 
 
    } else { 
      promptAction.showToast({ message: '设置权限失败!' }) 
    } 
  }) 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.

有两点需要注意,请求的参数:

maxLimit: 50 * 1024 * 1024, 响应消息的最大字节限制

expectDataType: 2, //这是视频文件,需要设置成arraybuffer样式

超过100M最大限制后,用requestInStream,流式返回,没有大小限制,但是也要关注手机内存。

分享
微博
QQ
微信
回复
2024-08-23 16:54:34
相关问题
汉字转拼音去掉音标怎么解决
1323浏览 • 1回复 待解决
模拟器无法启动怎么解决呢?
1739浏览 • 1回复 待解决
升级api11出现问题,怎么解决
2142浏览 • 1回复 待解决
有谁知道怎么解决
2580浏览 • 1回复 待解决
上传文件接口报错 ,怎么处理
1617浏览 • 1回复 待解决
项目启动报错怎么处理
1197浏览 • 1回复 待解决
for .in 语法不支持,怎么
1769浏览 • 1回复 待解决
最新RNOH启动报错 ,怎么
1809浏览 • 1回复 待解决
Android下述图片布局怎么解决
6339浏览 • 2回复 待解决
运行应用提示如下内容怎么
3546浏览 • 1回复 待解决
安装动态库失败,怎么
1363浏览 • 1回复 待解决
怎么
1525浏览 • 1回复 待解决
Map转JSON,哪位大佬知道怎么解决
2504浏览 • 0回复 待解决
模拟器不能启动怎么
1362浏览 • 1回复 待解决
studio编译经常报错怎么
1764浏览 • 1回复 待解决
HarmonyOS RN库的下载链接
827浏览 • 1回复 待解决
Tab组件,无法左对齐怎么处理?
1155浏览 • 1回复 待解决