我正在流式传输一个arrayBuffer,以将其转换为audioBuffer,从而能够听取它。
我通过websocket事件接收流。
retrieveAudioStream(){
this.socket.on('stream', (buffer) => {
console.log('buffer', buffer)
})
}
< p>缓冲区是一个arrayBuffer,我需要将其转换为audioBuffer,以便在我的应用程序上听取它。
我该怎么做?
我正在流式传输一个arrayBuffer,以将其转换为audioBuffer,从而能够听取它。
我通过websocket事件接收流。
retrieveAudioStream(){
this.socket.on('stream', (buffer) => {
console.log('buffer', buffer)
})
}
< p>缓冲区是一个arrayBuffer,我需要将其转换为audioBuffer,以便在我的应用程序上听取它。
我该怎么做?
BaseAudioContext.createBuffer()
方法。该方法用于创建一个新的空AudioBuffer
对象,然后可以通过数据填充它,并通过AudioBufferSourceNode
播放。更多信息请参见MDN:https://developer.mozilla.org/en-US/docs/Web/API/BaseAudioContext/createBuffer。AudioBuffer
对象需要 Float32Array
,而不是 OP 拥有的 ArrayBuffer
(表示数据块的缓冲区数组)。是否有一种方法可以将数据块的 ArrayBuffer
转换为 AudioBuffer
? - AbyxDevArrayBuffer
创建任何类型的数组。因此,你一定能够将ArrayBuffer
转换为Float32Array
。 - Orkhan Huseynli由于您正在流媒体而不是下载文件并解码音频数据,AudioContext.createMediaStreamSource()
更适合您的用例。
在此处阅读更多信息https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaStreamSource