video 视频下载,调用浏览器的下载进度方法

简单介绍下需求,跟上次的帖子一样,需要重写video标签的进度栏的样式,当然也包括重写下载方法,调用原生video标签下载视频的时候,浏览器会弹出下载进度条。

其实下载常用的可能利用a标签,创建一个请求就可以实现下载,但是这种下载方法死活出不来进度,可能方法使用的不对,如有好的方法可以提示我~

先看下什么时原生进度条吧

下图为调用原生时候,浏览器的下载进度提示。谷歌可能再底部出现,展示用的是Edge浏览器

展示下自定义下载方法后的效果,点击黄色下载按钮后浏览器的展示效果,除了重新自定义了视频的名称,效果跟原生的下载效果一致。

 实现方式是利用StreamSaver.js插件,页面引入后

使用 window.streamSaver.createWriteStream();方法,创建写入视频流

具体代码如下

// 视频下载,可以调用浏览器下载的进度条
    load() {
      const video = this.$refs.video; // video标签
      const url = video.src;
      return fetch(url, {
        method: 'GET',
        cache: 'no-cache'
      }).then(res => {
        const fileStream = window.streamSaver.createWriteStream('test.mp4', {
          size: res.headers.get("content-length")
        })
        const readableStream = res.body
        if (window.WritableStream && readableStream.pipeTo) {
          return readableStream.pipeTo(fileStream).then(() => console.log('done writing'))
        }
        window.writer = fileStream.getWriter();
        const reader = res.body.getReader();
        const pump = () => reader.read().then(res => res.done ? window.writer.close() : window.writer.write(res.value).then(pump));
        pump();
      })
    }

 另付上次帖子的内容☞video全屏操作栏自定义样式&&js 指定元素全屏&&视频截图下载_video全屏自定义控制_小菜花29的博客-CSDN博客

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值