首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当url是html5 url时,下载属性不起作用

当url是html5 url时,下载属性不起作用
EN

Stack Overflow用户
提问于 2017-04-24 17:19:33
回答 2查看 1.8K关注 0票数 18

我们正在创建一个chrome扩展来下载视频,目前我有这个功能:

function downloadvideo(video)
{
    const url = URL.createObjectURL(video.captureStream());
    const aelem = document.createElement('a');
    document.body.appendChild(aelem);
    aelem.setAttribute("href",url);
    aelem.setAttribute("download","video.mp4");
    aelem.click();
    //URL.revokeObjectURL(url);
}

这里的video参数是一个html5视频元素,我之所以使用caputreStream,是因为一些网站(特别是youtube)使用了blob url,这些url显然是被撤销的,所以我从MediaStream创建了一个新的Blob url。

上面的函数作为视频的onloadeddata事件的一部分执行。

对话框显示,文件名是正确的,但是当我点击“保存”时,chrome显示“失败:找不到文件”。

那么如何让它真正起作用呢?

顺便说一句,我试图对url做ajax,但是chrome拒绝了,并显示了这样的消息:“跨源只支持http,https,chrome,chrome-extension”:3 .

EN

回答 2

Stack Overflow用户

发布于 2017-05-03 23:39:13

URL.createObjectURL()

注意:使用MediaStream对象作为此方法的输入正在被弃用。关于是否应该彻底删除它的讨论正在进行中。因此,您应该尽量避免将此方法用于MediaStreams,而应改用HTMLMediaElement.srcObject()。

参考:https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL#Browser_compatibility

https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject#Browser_compatibility

代码:

函数下载video(Video){

var mediaStream = video.captureStream();
//adding a dom element and fetching it in HTMLMediaElement.

HTMLMediaElement.srcObject = mediaStream;
var url = HTMLMediaElement.currentSrc;
const aelem = document.createElement('a');
document.body.appendChild(aelem);
aelem.setAttribute("href",url);
aelem.setAttribute("download","video.mp4");
aelem.click();
//URL.revokeObjectURL(url);

}

看看这对你是否有效。

票数 2
EN

Stack Overflow用户

发布于 2017-05-03 16:22:51

这是我用来从canvas frame capture下载bloburl格式的视频的函数

function createdVideo(){
        var output = 'your video or captured stream or canvas capture'  
        var url = webkitURL.createObjectURL(output);
        // output_video.src = url; //toString converts it to a URL via Object URLs, falling back to DataURL
        download.href = url;//download is id of download link which als ohave download atribute}

我希望能在你的情况下工作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43584205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档