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

nic*_*man 18 javascript download html5-video

我们正在创建一个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);
}
Run Code Online (Sandbox Code Playgroud)

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

上述功能作为视频onloadeddata事件的一部分执行.

显示对话框并且文件名正确但是当我点击"保存"时,chrome说"失败:找不到文件".

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

顺便说一句,我试图对ajax做反对,url但chrome拒绝了这条消息:"只有方案http,https,chrome,chrome-extension支持交叉源:"3.

Cyb*_*hay 0

这是我用来在 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}
Run Code Online (Sandbox Code Playgroud)

我希望能适合你的情况