我想从Ajax请求中完全下载mp4视频,以便稍后呈现。
使用异步请求,它可以正常工作:
const req = new XMLHttpRequest();
req.open('GET', myVideoUrl, true);
req.responseType = 'blob';
req.onload = function() {
renderVideo(URL.createObjectURL(this.response));
};
但我宁愿同步执行此操作以阻止渲染,直到下载视频为止。我试过这种方式,但它不起作用......
const req = new XMLHttpRequest();
req.open('GET', myVideoUrl, false);
req.send(null);
const blob = new Blob([req.responseText], { type: 'video/mp4' });
renderVideo(URL.createObjectURL(blob));
我认为问题来自二进制数据和我尝试从responseText到objectUrl的转换......
有什么想法解决这个问题吗?
答案 0 :(得分:0)
无法评论导致低业力
为什么不使用req.response
?异步示例中使用的响应属性与此相同。
使用req.reponseText
将无效,因为Blob构造函数需要ArrayBuffer
,而不是text
。