如何将ArrayBuffer转换为AudioBuffer?

时间:2018-05-24 14:55:54

标签: javascript buffer web-audio web-audio-api audiobuffer

我正在将一个arrayBuffer转换为一个audioBuffer,以便能够收听它。

我通过websocket事件接收流

retrieveAudioStream(){
  this.socket.on('stream', (buffer) => {
    console.log('buffer', buffer)
  })
}

buffer是一个arrayBuffer,我需要它为audioBuffer才能在我的应用程序中收听它。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以使用BaseAudioContext.createBuffer()方法。 它用于

  

创建一个新的空AudioBuffer对象,然后可以将其填充数据,并通过AudioBufferSourceNode播放

有关详细信息,请参见MDN:https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createBuffer

答案 1 :(得分:1)

由于您正在流式传输媒体,而不是先下载文件然后解码音频数据,所以AudioContext.createMediaStreamSource()将更适合您的用例。

在这里https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaStreamSource

了解更多