Позвольте мне начать с того факта, что я довольно новичок в разработке веб-разработки и вряд ли использую socket.io более недели или двух. Я попытался воспроизвести аудио из ArrayBuffer, полученного из socket.io, соответствующего передаче файла MP3 с использованием Web Audio API. ArrayBuffer успешно декодируется WebAudio, но единственной проблемой, с которой я столкнулся, является то, что она занимает около 10 секунд после получения начального фрагмента ArrayBuffer, чтобы начать воспроизведение этой песни.Задержка веб-аудио API при воспроизведении при использовании socket.io для получения ArrayBuffer с сервера
Я понимаю, что он ждет, пока весь файл будет передан, а затем начнется воспроизведение? Есть ли лучший способ играть на треке, как только придет первый набор кусков?
Это, как я использую его в данный момент:
socket.on('browser:buffer', function(data) {
console.log(data.buffer);
source = audioContext.createBufferSource();
audioContext.decodeAudioData(data.buffer, function(decodedData) {
source.buffer = decodedData;
source.connect(audioContext.destination);
source.loop = true;
source.connect(audioContext.destination);
source.start(0);
});
}, function(error) {
console.error("decodeAudioData error", error);
});
Да я закончил с использованием второй вариант, когда я понял, что WebAudio немного более мощный, чем мой вариант использования. – nitimalh