渐进式加载和播放来自base64件的视频

时间:2017-07-17 14:51:28

标签: html5 video base64 chunks

我在base64中有很多视频。

我想要的就是在收到视频时逐步播放视频。

    var fileInput = document.querySelector('input#theInputFile');//multiple

fileInput.addEventListener('change', function(e) {
    var files = fileInput.files;
    for (var i = 0; i < files.length; i++) {
        var file = fileInput.files[i]
        fileLoaded(file, 0, 102400, file.size);
    };

    e.preventDefault();
});

videoA=[];
function fileLoaded(file, ini, end, size) {
    if (end>size){end=size}
    var reader = new FileReader();
    var fr = new FileReader();
    fr.onloadend = function(e) {
        if (e.target.readyState == FileReader.DONE) {
            var piece = e.target.result;
            display(piece.replace('data:video/mp4;base64,', ''));
        }
    };

    var blob = file.slice(ini, end, file.type);
    fr.readAsDataURL(blob);
    var init = end;
    var endt = init+end;
      if (end<size){
        fileLoaded(file, init, end, size);  
      }

}

尝试按块显示视频:

    var a=0;
    function display(vid, ini, end) {
        videoA.push(vid);
        $('#video').attr('src','data:video/mp4;base64,'+videoA[a]);
        a++;
    }

我知道这不是方法,但我试图搜索,任何响应都适应我正在搜索的内容。 即使我不确定是否可能。

谢谢!

修改 我试图逐个播放块,第一个播放得很好,但其余的都给出了错误: “未捕获(承诺)DOMException:无法加载,因为找不到支持的源”。 如果我可以正确地将这些块设置为base64,那对我来说就足够了

1 个答案:

答案 0 :(得分:0)

好的,解决方案是解决从浏览器中原始上传文件创建base64片段的问题,这些文件可以由html5播放器播放

所以我提出了另一个问题。 Chunk video mp4 file into base64 pieces with javascript on browser