4
我有一個來自桌面應用程序的傳入實時流,通過websocket連接到我的網頁。 我正在將PCM流轉換爲float 32數組。當我開始播放曲目時,我聽到了故障,所以我創建了一個bufferArray來存儲流的一部分,然後再播放它。 我得到的問題是,創建緩衝區後,我不能添加任何塊到數組。使用Web Audio API緩衝音頻
這裏我接收來自套接字連接的數據並將其存儲在數組中。我在開始流之前等待100個塊。
sock.onmessage = function(e) {
var samples = e.data;
obj = JSON.parse(samples);
stream = stream.concat(obj);
if(j == 1000){
console.log(stream);
playPcm(stream);
}
console.log(j);
j ++;
}
此方法處理音頻數據塊
function playPcm(data){
var audio = new Float32Array(data);
var source = context.createBufferSource();
var audioBuffer = context.createBuffer(1, audio.length, 44100);
audioBuffer.getChannelData(0).set(audio);
// console.log(audioBuffer);
source.buffer = audioBuffer;
source.connect(context.destination);
source.start(AudioStart);
AudioStart += audioBuffer.duration;
}
我看了一下scriptProcessorNode
,但無法弄清楚如何處理它。現在我幾乎陷入困境,因爲我對Web Audio API不是很熟悉。
你有來自套接字的mp3數據塊的例子嗎? –