【发布时间】:2014-04-08 10:58:17
【问题描述】:
我通过 websockets 接收到原始 float32 音频,并希望在浏览器中播放它。据我了解,我需要为此使用 MediaStream API。但是,我找不到创建可以将数据缓冲区附加到的 MediaStream 的方法。
实现这一目标的正确方法是什么?
我正在尝试这样的事情:
var context = new AudioContext();
context.sampleRate = 48000;
var stream = null; // ????
var source = context.createMediaStreamSource(stream);
source.connect(context.destination);
source.start(0);
socket.onmessage = function (event) {
stream.appendBuffer(new Float32Array(event.data)); // ????
};
【问题讨论】:
-
几年后你有什么反馈吗?尝试做同样的事情,但目前似乎仍然无法在流上“附加缓冲区”......
-
@ronag 我为这个问题添加了赏金,因为我很想知道答案。我还对代码进行了一些编辑以使其保持最新状态。 2018 年你碰巧知道了这个问题的答案吗?
-
1. context.sampleRate 是一个只读属性。 smapleRate docs
-
2.流必须是 MediaStream 对象。您可以使用构造函数创建它。
stream = new MediaStream()。 MediaStream docs
标签: javascript html webkitaudiocontext