На главную

MelonPlayer. Руководство по перематыванию эфира.

Как подключать плеер, а также список всех функций/событий/настроек, читайте в описании API ядра.

Если hls-сервер сконфигурирован особым образом и хранит звук длительное время, то есть возможность перематывать эфир к заданному времени (с точность до ~5 секунд - такова длина одного аудио-фрагмента в hls потоке). Для перемотки используется метод rewindToUnixTimestamp(timestamp).

Метод принимает UNIX timestamp, то есть число секунд с начала эпохи UNIX (Это время UTC и не зависит от часового пояса). Заметьте, что стандартный метод Date.now() возвращает число миллисекунд, а не секунд.

Например, чтобы переместиться в эфире на 1 час назад, следует вызвать:

player.rewindToUnixTimestamp(Math.floor(Date.now() / 1000) - 60 * 60)

Сводный пример

Ниже показана примерная схема, как можно перемещаться по эфиру (до суток назад), используя стандартный слайдер.

<input id="timeline" type="range" min="-86400" max="0" step="5" value="0">
// создаем плеер
var player = new MelonPlayer.Core({
    source: "//hls-01-radiovera.hostingradio.ru/rewind/30/playlist.m3u8",
    parent: document.querySelector("#hidden_element")
});

player.play(); // не все браузеры разрешают воспроизведение до первого взаимодействия с интерфейсом

// мотаем время, когда пользователь двигает слайдер
document.querySelector('#timeline').addEventListener('change', e => {
    var timestamp = Math.floor(Date.now() / 1000) + Number(e.target.value);
    player.rewindToUnixTimestamp(timestamp);
});