我正在使用Meteor.js和recorderJs庫,並嘗試將立體聲音頻緩衝區存儲到MongoDB。Meteor.methods()將Float32Array轉換爲對象
在客戶端,console.log(buffers)
給人的形式
[Float32Array, Float32Array]
的數組,但該方法將其與Meteor.call('newSound', buffers)
傳遞給Meteor.methods後
Meteor.methods({
newSound: function(buffers) {
console.log(buffers);
}
}
我得到一個數組是這樣的:
[Object, Object]
爲什麼Meteor將數組轉換爲對象TS?檢索時,我需要的數據陣列緩存工作,並可以將其與
var buffers = new Array(
_.toArray(buffers[0]),
_.toArray(buffers[1])
);
重新轉換,但我很擔心性能。在將它們存儲到數據庫之前,我應該將緩衝區轉換爲斑點,然後在檢索它們時重新進行轉換?
謝謝,我不知道從哪裏開始。文檔說EJSON支持「JavaScript Uint8Array」或「EJSON.newBinary」的結果。 – apostl3pol
我在MDN上發現了一篇有用的文章,它解釋了JavaScript中的類型化數組:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays。我不明白的是這些數組實際上是相同二進制數據的不同視圖。 – apostl3pol