2016-05-23 31 views
2

私はBlobにWAVファイルを持っています。これをMP3に変換するには、最初にInt16Arrayに変換する必要があります(ここからの例:https://github.com/zhuker/lamejs)。BlobをInt16Arrayに変換する方法

など。

var mp3encoder = new lamejs.Mp3Encoder(2, 44100, 128); 
// instead of `var samples = new Int16Array(44100);` I want something like `var samples = new Int16Array(blob);` 
var mp3Tmp = mp3encoder.encodeBuffer(samples); 

これは可能ですか?あなたは、データが実際には16ビットint Sのブロブである知っ提供

+0

FileReader APIを使用する必要があります。http://stackoverflow.com/questions/15341912/how-to-go-from-blob-to-arraybuffer – lipp

答えて

2

は、[はい、それは可能です:

  1. FileReader#readAsArrayBuffer経由ArrayBufferBlobをお読みください。

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

    ArrayBufferはFileReaderの's result`プロパティで提供されています。 Int16Arrayコンストラクタを介し

  2. 表示Int16ArrayとしてArrayBufferが:

    var data = new Int16Array(fr.result); 
    
data

今はInt16Arrayとして見BLOBから配列バッファです。

関連する問題