2
我通过websockets发送编码的现场音频流(mp3或ogg),我想用网络音频api播放它。 我阅读并尝试了几件事,但目前为止没有任何工作...使用网络音频播放编码的音频流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歌曲,但不是很好。在收到的块之间有一个非常小的休息。所以流没有流畅的播放。我不知道这是什么原因......也许decodeData.duration属性不够精确,或者在任何地方都有某种延迟。
无论如何,它与ogg文件完全不兼容。我可以听到第一个接收到的块,但其余的被忽略。也许这与丢失标题有关?
是否有任何其他方法在网络音频API播放编码的直播流然后decodeAudioData?我找不到任何东西...
感谢您的帮助!