javascript - 将 AudioBuffer 转换为 ArrayBuffer

标签 javascript websocket audiobuffer

我一直在网上寻找这个问题的答案,但我找不到任何资源。有谁知道如何使用 JavaScript 将 AudioBuffer 对象转换为 ArrayBuffer?这是我目前的尝试

//Send audio data to websockets server
function callback(stream) {

var ws = new WebSocket("ws://localhost:8080");
ws.binaryType = 'arraybuffer';

var context = new webkitAudioContext();
var mediaStreamSource = context.createMediaStreamSource(stream);
console.log(mediaStreamSource);

var request = new XMLHttpRequest();
request.open('GET', 'http://s3.amazonaws.com/fldrMusic/01_-%20Fire%20Walker.mp3', true);    
request.responseType = 'arraybuffer'; 

console.log("Current 'request.response' value");  
console.log(request.response);

request.onload = function() {
  context.decodeAudioData(request.response, function(buffer){

    console.log("sent message");
    console.log(buffer); 
    ws.send(buffer);

    //Serialize javascript object
    console.log("sent message encoded");       
    var buff = Base64Binary.decodeArrayBuffer(buffer.toString());       
    console.log(buff);


  }, 
  function(buffer){ 
    alert("decode failed!");
  })
} 

request.send();
}//end 'callback' function

最佳答案

AudioBuffer.getChannelData(channel_number);

您可以从AudioBuffer.numberOfChannels获取 channel 数

编辑:
有关更多详细信息,您可以查看 AudioBuffer 的 MDN 文档和 getChannelData方法。

关于javascript - 将 AudioBuffer 转换为 ArrayBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18293611/

相关文章:

java - React Native 和 Java 之间的 WebSocket

html - iOS 12上的webkitaudiocontext无法工作吗?

ios - 仅使用 inNumberFrames 信息在 AudioBufferList 中分配缓冲区 iOS

javascript - 我无法在 Javascript 中生成平滑的 Simplex 噪声

python - 使用异步服务器的长时间运行的任务

javascript - 测试一个字符串数组的indexOf 与另一个数组?

python - 如何使用 python 连接到 socket.io

JavaScript 将音频字节数组转换为 wav 文件或有效的 AudioBuffer

javascript - 获取位于表单内的第二个输入的值。 javascript 查询

javascript - 在 AngularJS 指令中测试 mouseover 和 mouseout 事件