2013-07-18 85 views
1

如果我使用websocket協議接收20ms ulaw樣本(對於內部音頻會議應用程序),將它們轉換爲PCM,緩衝它們以應對任何抖動(如果需要的話)...是否有可能,如果有,如何,可以我指示瀏覽器播放它們?我可以枚舉播放設備嗎?這對於沙盒瀏覽器環境如何工作?你可以通過瀏覽器在JavaScript中播放PCM音頻嗎?

使用JavaScript儘可能少的插件。這附近有人玩過嗎?

我知道你可以使用webrtc和SRTP,但我主要考慮編寫音頻緩衝區並提交它進行播放。

+0

[HTML5中的音頻數據流]可能重複(http://stackoverflow.com/questions/6593738/audio-data-streaming-in-html5?)? – bfavaretto

+1

您可以使用Web Audio API和ScriptProcessorNode執行此操作。 – Brad

回答

0

對於那些來自搜索引擎的人:

是的,這是可能的。您可以使用createBufferSource節點來接收來自WebSocket的音頻數據。

它是這樣的:

var context = new window.AudioContext() 

var channels = 1 
var sampleRate = 44100 
var frames = sampleRate * 3 

var buffer = context.createBuffer(channels, frames, sampleRate) 

// `data` comes from your Websocket, first convert it to Float32Array 
buffer.getChannelData(0).set(data) 

var source = context.createBufferSource() 
source.buffer = buffer 

// Then output to speaker for example 
source.connect(context.destination) 

當心,在UI過程中這樣做時,你可能會得到性能問題,工人可能會更好。此外,可能需要重新採樣。

相關問題