2013-08-17 2 views
4

Я искал по всему Интернету ответ на этот вопрос, и я не могу найти никаких ресурсов. Кто-нибудь знает, как использовать JavaScript для преобразования и AudioBuffer объекта в ArrayBuffer? Это моя нынешняя попыткаПреобразование 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 

ответ

1
AudioBuffer.getChannelData(channel_number); 

Вы можете получить количество каналов от AudioBuffer.numberOfChannels

EDIT:
Для получения более подробной информации, вы можете проверить документы MDN для AudioBuffer и метод getChannelData ,