【问题标题】:Can you play streamed in PCM audio in javascript via browser?您可以通过浏览器在 javascript 中播放流式传输的 PCM 音频吗?
【发布时间】:2013-07-16 19:47:49
【问题描述】:

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

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

我知道你可以使用 webrtc 和 SRTP,但我主要是考虑组合音频缓冲区并提交它以供播放。

【问题讨论】:

标签: javascript rtp pcm


【解决方案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 过程中执行此操作时可能会出现性能问题,工作人员可能会更好。此外,可能需要重新采样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 2017-07-12
    • 2010-09-14
    相关资源
    最近更新 更多