Я работаю в Meteor.js с библиотекой recorderJs и пытается хранить стерео аудио буферы в MongoDB.Meteor.methods() преобразует Float32Array в объект
На клиенте, console.log(buffers)
дает массив формы
[Float32Array, Float32Array]
Но после прохождения его Meteor.methods с Meteor.call('newSound', buffers)
с методом
Meteor.methods({
newSound: function(buffers) {
console.log(buffers);
}
}
Я получаю массив так:
[Object, Object]
Почему Meteor преобразует массивы в objec ц? После извлечения, мне нужно работать с данными как буферы массива, и может повторно преобразовывать их с
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