如何将node.js数组缓冲区转换为javascript数组缓冲区

时间:2017-11-28 11:10:01

标签: javascript node.js file http

我使用node.js向客户端发送音频:
res.send(audio); / audio it is the buffer array

我得到了对象' arrayBuffer'在数据中。

enter image description here

然后我将它转换为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方法变为json
result.json().then(function (data) {
       const blob = new Blob([data.audio], { type: 'audio/wav' }); 
       ...

enter image description here

但现在它不起作用。我尝试使用模块www.npmjs.com/package/to-array-buffer将data.audio转换为js-arrayBuffer,但它没有帮助。

也许你知道这里有什么问题吗?

1 个答案:

答案 0 :(得分:0)

好的,我解决了问题。我使用的模块是关于我写的to-array-buffer,但我没有使用toArrayBuffer(data.audio)而是toArrayBuffer(data.audio.data)