Javascript 将arrayBuffer编码为Base64的正确方法,反之亦然

Javascript 将arrayBuffer编码为Base64的正确方法,反之亦然,javascript,base64,Javascript,Base64,我有以下代码: var bufferPromise = e.data.arrayBuffer(); bufferPromise.then(function(array){ var base64chunk = _base64ArrayBuffer(array) var base64_string = 'data:video/webm;base64,' + base

我有以下代码:

var bufferPromise = e.data.arrayBuffer();
                    bufferPromise.then(function(array){
                        var base64chunk = _base64ArrayBuffer(array)
                        var base64_string = 'data:video/webm;base64,' + base64chunk
                        console.log(base64_string)
                        var arr = _base64ToArrayBuffer(base64_string)
                        sourceBuffer.appendBuffer(arr);
                        //sourceBuffer.appendBuffer(new Uint8Array(array)); // works!
                    })
其中我需要将此代码中的
数组
缓冲区转换为base64,为了测试base64是否确实正确,我需要将base64转换回
数组缓冲区
,然后将其输入
源缓冲区
,以便显示。此代码的问题在于base64不工作,实际上它在
\u base64ToArrayBuffer
函数中抛出了
InvalidCharacterError:String包含无效字符

function _base64ToArrayBuffer(base64) {
    var binary_string = window.atob(base64);
    var len = binary_string.length;
    var bytes = new Uint8Array(len);
    for (var i = 0; i < len; i++) {
        bytes[i] = binary_string.charCodeAt(i);
    }
    return bytes.buffer;
}
函数\u base64ToArrayBuffer(base64){
var binary_string=window.atob(base64);
var len=二进制字符串长度;
var字节=新的Uint8Array(len);
对于(变量i=0;i

我的问题是什么是正确的数组到base64函数,什么是正确的base64到数组函数

您的base 64字符串在开始时包含
数据:[][;base 64],
,因此您需要在这之后获取所有其他内容

您可以尝试这个变量myBase64=
str.split('base64')[1]然后进行检查


啊,是的,我完全错过了那一次。谢谢