を介してバイナリ ファイルをループし、arrayBuffer
1024 個の浮動小数点のセットを取得する必要があります。私はこれをやっています:
// chunk_size = 1024
// chunk_len = 48
// response_buffer = ArrayBuffer
// response_buffer.byteLength = 49152
for (i = chunk_len; i > 0; i -= 1) {
switch (i) {
case (chunk_len):
// create view from last chunk of 1024 out of 49152 total
float_buffer = new Float32Array(response_buffer, ((i - 1) * chunk_size));
// add_data(net_len, float_buffer);
break;
case 0:
break;
default:
float_buffer = new Float32Array(response_buffer, ((i - 1) * chunk_size)), chunk_size);
//add_data(net_len, float_buffer);
break;
}
}
私の問題は、バッファの終わりの最初の実行でこれを呼び出す場合です。
// i - 1 = 47 * chunk_size
new Float32Array(response_buffer, ((i - 1) * chunk_size));
私が呼び出す次の実行では、同じステートメントが失敗します。
new Float32Array(response_buffer, ((i - 1) * chunk_size), 1024);
私はここで読むことができますが、私はこれを行うことができます:
Float32Array Float32Array(
ArrayBuffer buffer,
optional unsigned long byteOffset,
optional unsigned long length
);
質問: ArrayBufferで最初のビューを
宣言した後、ループが失敗するのはなぜですか?Float32Array
response_offer