2014-09-23 22 views
0

我有一個數組:如何在數組插入ArrayBuffer時獲取dataType?

var dataArray = new Uint16Array(256); 

然後我的數組越過到的NodeJS的其他電腦。 (nodejs binaryType =「arraybuffer」)

我如何知道在另一個客戶端上我必須轉換爲Uint16Array而不是Uint8Array?

注意:位深度和數組長度是一個動態值,可以在程序運行時改變。

謝謝:)

+0

好的謝謝。所以我必須將這些信息與每個arrayBuffer一起傳輸。你知道一個聰明的方式來附加這些信息嗎? – Cracker0dks 2014-09-23 23:42:51

+0

將我的意見合併爲一個答案。 – 2014-09-23 23:55:29

回答

1

傳送數據時作爲ArrayBuffer它只是二進制緩衝區中的數據,你需要知道什麼查看您想訪問數據。 TypedArrays只是一個二進制的視圖ArrayBuffer

有幾種方法來處理這個問題:

  • 使用不同的路線來提交您的數據
  • 添加一個前綴字節數據
  • 也可能是最好的解決辦法,不改變你的數據類型中等應用。 imho一個乾淨的界面應該只能處理一種類型的數據。
+0

好的謝謝。但我有音頻數據並使用不同的採樣和比特率。我可以添加一個前綴字節而不創建一個新的數組? – Cracker0dks 2014-09-24 00:04:22

+0

使用不同路線的問題是什麼? 'TypedArray'不可調整大小,您需要將其數據複製到另一個具有一個字節偏移量的'ArrayBuffer'。 – 2014-09-24 00:13:26

+0

你到底意味着什麼路線?我只有在nodeJs服務器上,只有一個發送和一個阻止功能。怎麼能比這一條路線更多? – Cracker0dks 2014-09-24 00:17:23