Как я могу загрузить следующую аудио песню, пока играешь в JavaScript? - PullRequest
0 голосов
/ 19 апреля 2020

Я сделал пользовательский аудиоплеер в JavaScript, он прекрасно воспроизводит все аудиодорожки, однако у меня возникает проблема при загрузке следующего файла MP3. Загрузка занимает много времени. Теперь это возможно в JavaSript, если мы можем загрузить (буферизовать) следующий файл MP3, пока проигрыватель воспроизводит его, чтобы слушатель получал задержку, а песни воспроизводились гладко?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 19 апреля 2020

Самый простой способ буферизовать следующую дорожку - создать второй аудиообъект.

const audio1 = new Audio('first.mp3');
audio1.play();

const audio2 = new Audio('second.mp3');

Когда вы задаете URL для аудиоэлемента, он заблаговременно буферизует некоторые данные.

Если вы хотите принудительно загрузить всю вещь, я предлагаю использовать ServiceWorkers для перехвата запроса от аудиообъекта, отбросить заголовок запроса Range и кэшировать весь ответ.

...