Skip to content

Параметр setSegmentAcceptor

Описание

Метод setSegmentAcceptor в TeleportConfiguration.Builder позволяет определить функцию для идентификации запросов на скачивание видео-сегментов. Это необходимо для того, чтобы Teleport SDK мог перехватывать и обрабатывать только те запросы, которые относятся к медиа-сегментам, предназначенным для пиринговой доставки.

Поведение по умолчанию

По умолчанию Teleport SDK определяет сегменты по их расширениям: .ts, .mp4, .m4s, .m4v, .m4a, .vtt.

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

Вам потребуется определить собственную функцию setSegmentAcceptor в следующих случаях:

  • Нестандартные URL: Если ваш медиасервер использует специфичные или нестандартные URL-адреса для видео-сегментов, которые не соответствуют стандартным расширениям.
  • Исключение Init-сегментов: Если ваш протокол стриминга предполагает наличие "init" сегментов (инициализационных сегментов), которые не должны попадать в обработку Teleport. В этом случае функция должна быть настроена так, чтобы исключать такие сегменты.

Требования к функции

  • Функция должна принимать Uri и возвращать Boolean (true, если URL является видео-сегментом).
  • Вызывается на бэкграунд потоке.

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

kotlin
TeleportConfiguration.Builder("YOUR_API_KEY")
        .setSegmentAcceptor { uri: Uri ->
            // Пример: определяет сегмент по наличию ".mp4" в пути и исключает "init" сегменты
            uri.path?.contains(".mp4") ?: false && !uri.path?.contains("init")
        }
        .build()

В этом примере функция setSegmentAcceptor будет считать сегментом любой URL, содержащий .mp4, но не содержащий "init" в пути.