youtube 视频流的方式给我留下了深刻的印象,它使用了分块数据并且没有使用太多的流量资源,所以我尝试在这个源之后模仿 youtube 方式。
vid.src = blobUrl;
vid.currentTime = timevalue;
vid.play;
xhr.open('POST', '1', true);
xhr.responseType = "arraybuffer";
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send('rs=' + rs + '&rn=' + rn);
rs = rn;
rn += ch;
xhr.onload = function(e){
if (this.status == 200) {
var tmp = new Uint8Array(this.response);
var tmp1 = v8array;
v8array = new Uint8Array(tmp1.length + tmp.length);
v8array.set(tmp1);
v8array.set(tmp, tmp1.length);
myblob = new Blob([v8array]);
blobUrl = URL.createObjectURL(myblob);
identify = true;
}
}
这意味着在播放所有 rs-rn (rangestart-rangeend (ch = chunk range)) 时向 Uint8Array 添加额外的请求数据,它运行良好,除了在 vid.src url 更改时出现一些缺失,我发现 youtube 的 blob-url不改变。不使用媒体api,如何在播放视频时更改blobUrl表示自然而不缺乏?请帮我。