Javascript 为什么此属性返回未定义?

Javascript 为什么此属性返回未定义?,javascript,audio,codec,Javascript,Audio,Codec,我正在用Javascript编写AMR编解码器,似乎无法获得解码器模块识别的文件引用。以下是我的代码示例: reader.onload = (function (file) { return function (e) { var extension = file.name.split(".")[1]; if (extension === "amr") { console.log("in try"

我正在用Javascript编写AMR编解码器,似乎无法获得解码器模块识别的文件引用。以下是我的代码示例:

 reader.onload = (function (file) {
        return function (e) {

            var extension = file.name.split(".")[1];

            if (extension === "amr") {
                console.log("in try");
                var stuff = e.target.result;
                console.log(stuff.length);
                var jigg = new AMR();
                jigg.benchmark == 'true';
                console.log(jigg); //jigg is defined, it's an instance of amr
                // let's call some amr functions...
                var dcoded = jigg.decode(stuff);

                AMR.util.play(dcoded); //this throws an 'undefined' error, indicating that 'dcoded' is undefined. 


            } else if (extension == "wav") {
                var data = e.target.result;
                encodeWAV(data);
            } else if (extension == "pcm" && isTypedArray) {
                encodeRawPCM(new Int16Array(e.target.result));
            }
        };
    })(f);

    if ( !! isTypedArray) {
        reader.readAsArraybuffer(f);
        return;
    }
    // Read the file as a Binary String
    reader.readAsBinaryString(f);
}
我已经评论了故障发生的线路

 AMR.util.play(dcoded);

你能发布准确的错误消息吗?从您的评论来看,它看起来像是
jigg.decode(stuff)
返回的
undefined
。它看起来像
jigg.decode(stuff)不适用于
内容
。什么是
console.out(东西)说?如果你有大量的代码,你应该先考虑单元测试,然后再发布相关的代码。我们猜不出jigg.decode到底做了什么。哇,谢谢!log(stuff)打印:“stscÁstco”。我试图分解程序并进行单元测试。查看我的JSFIDLE: