【发布时间】:2014-12-29 09:19:17
【问题描述】:
我正在通过 websockets 发送编码的实时音频流(mp3 或 ogg),我想使用 web 音频 api 播放它。 我阅读并尝试了几件事,但到目前为止没有任何效果......
我总是尝试使用 decodeAudioData 方法来做到这一点。 但是这种方法不能处理连续的流。 所以我最后的方法是这样的:
ws.onmessage = function (evt) {
context.decodeAudioData(evt.data, function (decodedData) {
source = context.createBufferSource();
source.buffer = decodedData;
source.start(startTime);
source.connect(context.destination);
startTime += decodedData.duration;
},
function(e) {
var test = e;
}
);
};
这至少适用于 mp3,但效果不是很好。在收到的块之间有一个非常小的中断。所以没有流的流畅播放。我不知道这是什么原因......也许 decodedData.duration 属性不够准确,或者任何地方都有某种延迟。
无论如何,它根本不适用于 ogg 文件。我可以听到第一个收到的块,但其余的被忽略了。也许这与缺少标题有关?
网络音频 api 中是否还有其他方法可以播放编码的直播流然后解码音频数据?我找不到任何东西......
感谢您的帮助!
【问题讨论】:
标签: web-audio-api