在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ video標(biāo)簽怎么先緩存完再播放

video標(biāo)簽怎么先緩存完再播放

由于需要播放途中不能緩沖,所以就想著緩沖完再開始播放。用了preload結(jié)果只能加載一部分,并不會(huì)加載全部,如果不開始播放就不會(huì)繼續(xù)加載,一直就觸發(fā)不了canplaythrough,一般這種都是怎么解決的?

回答
編輯回答
挽青絲

換個(gè)思路:先將視頻下載下來(lái),存成數(shù)據(jù)文件,然后再播放。

var hasLoaded = false;
var xhr = new XMLHttpRequest();
    xhr.open('GET', url, true);
    xhr.responseType = 'arraybuffer';
    xhr.timeout = '6000';
    xhr.send();
    xhr.onload = function() {
        if (xhr.status !== 200) {
            return;
        }
        // 轉(zhuǎn)換成文件格式
        var binaryData = new Uint8Array(xhr.response);
        // 生成一個(gè)本地的url
        var rUrl = window.URL.createObjectURL(new Blob([binaryData], {
            type: "video/mp4"
        }));
        // video賦值
        video.src = rUrl;
        // 加載成功標(biāo)識(shí)
        hasLoaded = true;
    };
    xhr.onerror = function () {
        console.log("video request was wrong");
    };

當(dāng)然也可以使用jQuery, 要1.8以上的版本才支持。

2017年1月29日 22:36