Предварительная загрузка аудиофайлов
API предоставляет возможность осуществлять предварительную загрузку аудиофайлов. Это позволяет оптимизировать загрузку данных таким образом, чтобы пользователи могли слушать музыку без прерываний даже при медленном соединении с интернетом.
Чтобы начать предварительную загрузку аудиофайла, необходимо вызвать функцию preload(). В качестве аргумента ей передается URL файла.
// Запуск предварительной загрузки аудиофайла.
audioPlayer.preload(src).then(function() {
console.log("Предварительная загрузка началась.");
}, function(err) {
console.error("Не удалось начать загрузку.", err);
}
);
Функция preload()
работает в асинхронном режиме. Она возвращает объект-обещание, который разрешится в том случае, когда начнется загрузка аудиофайла (а не когда загрузка полностью завершится).
preload()
загрузка предыдущего файла оборвется и начнется загрузка следующего.Для того чтобы применить какое-нибудь действие к предварительно загружаемому файлу (например, остановить загрузку), необходимо вызвать соответствующий метод с аргументом 1. Например:
// Остановка предварительной загрузки.
audioPlayer.stop(1);
// Функции для получения информации о предзагружаемом файле.
console.log("Ссылка на текущий трек", audioPlayer.getSrc(1));
console.log("Длительность трека", audioPlayer.getDuration(1));
console.log("Длительность загруженной части", audioPlayer.getLoaded(1));
...
stop()
без аргументов приведет к остановке загрузки текущего файла, а не к остановке предварительной загрузки следующего.Для воспроизведения предварительно загружаемого файла следует вызывать функцию playPreloaded():
// Воспроизведение предварительно загружаемого аудиофайла.
audioPlayer.playPreloaded().then(function() {
console.log("Воспроизведение успешно началось.");
}, function(err) {
console.error("Не удалось начать воспроизведенние.", err);
}
);
playPreloaded()
можно передать URL файла, который необходимо воспроизвести. В этом случае прежде чем воспроизвести файл, API сначала проверит, что именно этот файл находится в состоянии предварительной загрузки (либо является последним среди предварительно загруженных). Если файл таковым не является, воспроизведение не будет запущено.Как только было запущено воспроизведение предварительно загруженного файла, он становится текущим, и все методы далее следует вызывать без аргумента 1.