我使用node.js向客户端发送音频:
res.send(audio); / audio it is the buffer array
我得到了对象' arrayBuffer'在数据中。
然后我将它转换为Blob,然后归档(我希望获得dataURL以在播放器中显示它)
.then(
(result) => {
result.arrayBuffer().then(function (data) {
const blob = new Blob([data], { type: 'audio/wav' });
var fileReader = new FileReader();
fileReader.readAsDataURL(blob);
fileReader.onload = function (evt) {
// Read out file contents as a Data URL
var url = evt.target.result;
res({blob, url})
};
})
}
)
它运作良好。我将此网址用作我src
属性的<audio>
并且有效。
但是现在我想从服务器发送这个文件作为json的一部分。现在我从服务中获得audioBuffer&#34; audio&#34;属性。我在find:
中将arrayBuffer方法变为jsonresult.json().then(function (data) {
const blob = new Blob([data.audio], { type: 'audio/wav' });
...
但现在它不起作用。我尝试使用模块www.npmjs.com/package/to-array-buffer
将data.audio转换为js-arrayBuffer,但它没有帮助。
也许你知道这里有什么问题吗?
答案 0 :(得分:0)
好的,我解决了问题。我使用的模块是关于我写的to-array-buffer,但我没有使用toArrayBuffer(data.audio)
而是toArrayBuffer(data.audio.data)