为什么libmp3lame.js会造成乱码MP3?

时间:2014-02-25 22:20:27

标签: javascript audio mp3 html5-audio lame

我已经分叉了Recorder.js以添加对MP3编码的支持,以减少记录的数据大小。 Repository here。编码工作到一定程度,我可以播放已编码为MP3的录制音频。但是,音频质量是乱码。关键方法是在recorderWorker.js:

function exportMP3(type){
    var bufferL = mergeBuffers(recBuffersL, recLength);
    var bufferR = mergeBuffers(recBuffersR, recLength);

    console.log("Start MP3 encoding");
    var mp3codec = Lame.init();
    Lame.set_mode(mp3codec, Lame.JOINT_STEREO);
    Lame.set_num_channels(mp3codec, 2);
    Lame.set_out_samplerate(mp3codec, sampleRate);
    Lame.set_bitrate(mp3codec, 128);
    Lame.init_params(mp3codec);

    var mp3data = Lame.encode_buffer_ieee_float(mp3codec, bufferL, bufferR);
    audioBlob = new Blob([mp3data.data], { type: "audio/mp3" });
    console.log("Done MP3 encoding");

    this.postMessage(audioBlob);
}

这是sample recording

这里,bufferL和bufferR是PCM数据,如Float32Array。我该怎么做才能修复乱码?谢谢。

0 个答案:

没有答案