你可以通过浏览器在javascript中播放PCM音频流吗?

时间:2013-07-18 02:47:00

标签: javascript rtp pcm

如果我使用websocket协议接收20ms ulaw样本(对于内部音频会议应用程序),将它们转换为PCM,缓冲它们以获得任何抖动(如果需要)......是否可能,如果是,如何,我可以指示浏览器播放它们吗?我可以枚举播放设备吗?这对沙盒浏览器环境有何影响?

使用尽可能少的插件使用Javascript。这附近有人玩这个吗?

我知道你可以使用webrtc和SRTP,但我主要考虑编写音频缓冲区并提交它进行播放。

1 个答案:

答案 0 :(得分:1)

来自搜索引擎的人:

是的,有可能。您可以使用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过程中执行此操作时可能会遇到性能问题,工作人员可能会更好。此外,可能需要重新采样。