【发布时间】:2020-09-25 10:44:46
【问题描述】:
我制作了一个视频编码器,可以输出 base64 编码的视频。
视频播放器需要在浏览器中播放视频。 我当前的代码不起作用,我也尝试使用 responseText 而不是将响应作为 blob。
因此服务器获取视频并将其作为 base64 字符串处理。 那么浏览器需要对其进行解码并以视频的形式查看,我该如何完成呢?
我的代码:
decodeBase64 = function(s) {
var e={},i,b=0,c,x,l=0,a,r='',w=String.fromCharCode,L=s.length;
var A="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
for(i=0;i<64;i++){e[A.charAt(i)]=i;}
for(x=0;x<L;x++){
c=e[s.charAt(x)];b=(b<<6)+c;l+=6;
while(l>=8){((a=(b>>>(l-=8))&0xff)||(x<(L-2)))&&(r+=w(a));}
}
return r;
};
var xhr = new XMLHttpRequest();
xhr.open("GET", "video");
xhr.responseType = "blob";
xhr.onload = response;
xhr.send();
function response(e) {
var URL = window.URL || window.webkitURL;
var videoUrl = URL.createObjectURL(decodeBase64(this.response));
document.querySelector("video").src = videoUrl;
}
【问题讨论】:
-
你能改写一下这个问题吗?它的模棱两可
标签: javascript base64 blob