2017-02-26 3 views
1

WebSocketバイナリメッセージで受信したBLOBをFloat32Array(または他の型付き配列:Uint32、Uint16など)に変換するにはどうすればよいですか?JavaScript BlobをFloat32Array(または他の型付き配列)に変換する

私はFileReaderを使用しようとしましたが、 'result'が利用可能になるには時間がかかりすぎます。結果は、次に受信したWebSocketメッセージで利用可能でなければならない(MUST)。

WebSocketにBlobの代わりにArrayBufferを受け取ることができれば、それは動作します。どうやってやるの?

+0

私は[** here **](http://stackoverflow.com/a/27208593/1615483)のように、ハックのビットと同期して行うことができます。これは、まだいくつかの独立した非同期の事の前にあることは保証されません。たぶん、この質問を見てくださいhttp://stackoverflow.com/questions/15040126/receiving-websocket-arraybuffer-data-in-the-browser-receiving-string-instead –

+0

@ポール - 面白いハック。私は、以下の投稿をいただきました。ありがとうございました。ちょうどBlobを使わないでください;) –

答えて

3

解決策は見つかりましたか? WebSocketのbinaryTypeのデフォルトは 'Blob'で、ArrayBufferに変更してから他のTypedArraysに変換するのは簡単です。

var ws = new WebSocket(...); 
ws.binaryType = 'arraybuffer'; 
関連する問題