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?我找不到任何東西...
感謝您的幫助!