1
JavaScriptでオーディオフロート配列をバイト文字列に変換したい。JavaScript float PCMオーディオ配列をリトルエンディアンのバイト文字列に変換するにはどうすればよいですか?
Input: [0.0007124987314455211, 0.0005752402357757092, -0.0010658394312486053, -0.0004562278045341372 ,...]
Output: '\x02\x04\x35...'
しかし、私は4桁の番号を取得しています:私は2桁の数字を期待していたバイトに変換して、その後、私は、この例の出力を参照して、文字列に追加することができます。どうすればバイトに正しく変換できますか?
function floatToByteString(input){
//first convert to 16 bit int array
var intarray = new Int16Array(input.length);
for (var i = 0; i < input.length; i++){
var s = Math.max(-1, Math.min(1, input[i]));
var newint = s < 0 ? s * 0x8000 : s * 0x7FFF;
intarray[i] = newint;
}
//second: convert 16 bit int array to little endian byte string
var bytestring = "";
for (var i = 0; i < input.length; i++){
var thisint = intarray[i]
var bytel = thisint & 0xff;
var byteb = (thisint >> 8) & 0xff;
bytestring += "\\x"+bytel + "" + byteb
}
return bytestring;
}