Skip to content

Параметр bufferSizeGetter

Описание

Параметр bufferSizeGetter предоставляет Teleport SDK функцию для считывания текущего размера буфера у видео-плеера. Эта информация используется SDK для принятия решений о том, когда и какие сегменты запрашивать из пиринговой сети или CDN, оптимизируя процесс доставки и минимизируя буферизацию.

Важность размера буфера

Точное знание размера буфера плеера позволяет Teleport SDK более эффективно управлять стратегией загрузки, предотвращая избыточную загрузку (что экономит трафик) и недостаточную загрузку (что предотвращает буферизацию).

Когда это необходимо?

Рекомендуется всегда указывать функцию bufferSizeGetter, если ваш плеер предоставляет доступ к информации о размере буфера. Это позволяет Teleport SDK максимально адаптироваться к состоянию плеера.

Пример использования

js
let player = new shaka.Player(video); // Пример инициализации плеера Shaka Player

let tlprt = await teleport.initialize({
    apiKey: "YOUR_API_KEY", // Ваш API-ключ
    loader: {
        type: "PLUGIN_ID", // Идентификатор используемого плагина плеера
        params: {
            // Функция для получения текущего размера буфера плеера
            bufferSizeGetter: () => {
                // Пример получения информации о буфере из Shaka Player
                let playhead = player.getPlayheadTimeAsDate().getTime();
                let presentation = player.getPresentationStartTimeAsDate().getTime();
                let start = (playhead - presentation) / 1000; // Текущая позиция воспроизведения в секундах

                let buf = player.getBufferedInfo();
                let end = buf && buf.video && buf.video[0] && buf.video[0].end || 0; // Конец буферизованного диапазона

                // Возвращаем размер буфера в секундах
                return end > start ? end - start : 0;
            }
        }
    }
});