如何将Blob转换为Int16Array

时间:2016-05-23 15:08:56

标签: javascript mp3

我在Blob中有一个WAV文件,为了将其转换为MP3,我需要先将其转换为Int16Array(从此处跟随示例:https://github.com/zhuker/lamejs)。

E.g。

value['0d1df598a5539ab5b6b410b339dc9218e0acb091']

这可能吗?

1 个答案:

答案 0 :(得分:2)

如果您知道数据实际上是一个16位int的blob,那么是的,这是可能的:

  1. 通过FileReader#readAsArrayBufferBlob读入ArrayBuffer

    var fr = new FileReader();
    fr.readAsArrayBuffer(samples);
    

    FileReader ArrayBuffer result`属性中提供了's

  2. 通过ArrayBuffer构造函数将Int16Array视为Int16Array

    var data = new Int16Array(fr.result);
    
  3. 现在data是来自blob的数组缓冲区,被视为Int16Array