Перейти к содержанию

Настройки воспроизведения

Ниже описано, как дать пользователю выбрать качество видео, аудиодорожку и субтитры. Все нужные данные приходят в ответе /stream (см. Воспроизведение видео).

Перед началом работы

Убедитесь, что:

  • ваше приложение уже воспроизводит видео (см. Воспроизведение видео);
  • вы передаете lang в запросе /stream. На этом языке в ответе придут названия качеств, аудиодорожек и субтитров, а также по lang выбирается аудиодорожка по умолчанию.

ВНИМАНИЕ

В манифесте (src) может быть больше аудиодорожек и качеств, чем в ответе /stream. Вашему ключу разрешены только элементы из ответа /stream — показывайте пользователю только их.

Набор аудиодорожек в ответе зависит и от настроек вашего ключа. Аудиодорожки 5.1 партнерским ключам не отдаются. Если ваш ключ не допускает аудиодорожки, для которых обязательны субтитры, таких аудиодорожек в ответе не будет. А если у видео есть только такие аудиодорожки, массив audio_tracks придет пустым.

Данные в ответе

{
  "data": {
    "src": "https://…/a/105/…/playlist.m3u8?…",
    "stream_type": "hls",
    "bitrates": [
      { "index": 5, "bitrate": 720, "name": "High (720)", "src": "https://…" }
    ],
    "audio_tracks": [
      {
        "index": 105,
        "id": 14,
        "lang_iso_639_1": "uk",
        "lang_tag": "uk-x-14",
        "display_name": "Ukrainian",
        "is_active": true,
        "require_subtitles": false,
        "subtitles_policy": {
          "allowed_subtitles": [2922105, 3785765],
          "is_disableable": true
        }
      }
    ],
    "subtitles": [
      {
        "id": 2922105,
        "type": "srt",
        "lang_iso_639_1": "ru",
        "lang_tag": "ru-x-11",
        "display_name": "Russian",
        "url": "https://…"
      }
    ]
  }
}

Ответ сокращен. Значения получены в тесте с языком en.

Выбор качества видео

По умолчанию плеер подбирает качество автоматически (адаптивный стриминг). Чтобы пользователь мог выбрать фиксированное качество, используйте bitrates:

  1. Выведите элементы bitrates в меню качества, подписав их значением name.
  2. Когда пользователь выберет качество, используйте один из способов:
    • Воспроизведите src этого элемента — в нем только выбранное качество. Начните воспроизведение с текущей позиции.
    • Если ваш плеер умеет переключать варианты в манифесте, найдите вариант с именем {bitrate}p, например 720p. Имя указано в NAME для HLS или в id элемента Representation для DASH. Показывайте только те качества, которые есть и в bitrates, и в манифесте.
  3. Чтобы вернуться к автоматическому выбору качества, снова воспроизведите src из ответа.

Для видео с DRM берите license_server из того же элемента bitrates.

У 4K-версии (is_uhd: true) только одно качество — 2160.

Выбор аудиодорожки

Меню аудиодорожек

  1. Показывайте только аудиодорожки из audio_tracks в том порядке, в котором они идут в массиве.
  2. В качестве подписи используйте display_name. Язык определяйте по lang_iso_639_1 или lang_tag. Не используйте для этого lang: это код MEGOGO, а не код ISO.
  3. Запускайте воспроизведение с аудиодорожкой, у которой is_active: true. MEGOGO выбирает ее по lang из запроса.
  4. Если у аудиодорожки require_subtitles: true, добавьте к ней пометку, например «с субтитрами». См. Субтитры.

Для одного языка может быть несколько аудиодорожек, например «Украинский» и «Украинский с тифлокомментарием». lang_tag у каждой аудиодорожки уникален.

Смена аудиодорожки

Способ зависит от манифеста.

В URL src есть сегмент /a/{number}/, например /a/105/ (HLS версии 3, MSS). В таком манифесте только одна аудиодорожка:

  1. Замените в src первый сегмент /a/{number}/ на /a/{index}/ выбранной аудиодорожки. Если используется фиксированное качество, сделайте то же самое в src элемента bitrates.
  2. Перезапустите плеер с новым URL с текущей позиции.

Аудиодорожки описаны в манифесте (DASH, HLS с несколькими аудиодорожками):

  1. Найдите в манифесте аудиодорожку с тем же lang_tag: LANGUAGE для HLS или lang элемента AdaptationSet для DASH.
  2. Выберите эту аудиодорожку в плеере.
  3. Не показывайте аудиодорожки из манифеста, которых нет в audio_tracks.

Запоминайте выбор пользователя для этого видео. В сериале используйте ту же аудиодорожку во всех сериях, где она есть.

Выбор субтитров

В массиве subtitles перечислены файлы субтитров (type: srt), у каждого элемента есть url. Чтобы показать субтитры, загрузите файл и выведите его в вашем плеере.

У каждой аудиодорожки есть subtitles_policy:

Поле Назначение
allowed_subtitles Значения id субтитров, которые пользователь может выбрать для этой аудиодорожки. Показывайте в меню только их
is_disableable false — с этой аудиодорожкой субтитры нельзя выключить. Не показывайте в меню пункт «Выкл.»
preselect id субтитров, которые нужно включить, если is_disableable равен false

Когда пользователь выбирает аудиодорожку:

  1. Если is_disableable равен false, включите субтитры с id из preselect. Язык субтитров пользователь сменить может, а выключить их — нет.
  2. Если is_disableable равен true, не включайте субтитры автоматически и игнорируйте preselect. Пользователь сам может включить субтитры в меню.

У аудиодорожек с require_subtitles: true всегда есть is_disableable: false и preselect: субтитры для них обязательны по закону.

ОСТОРОЖНО

У некоторых субтитров lang и lang_iso_639_1 указаны неверно: например, у азербайджанских субтитров может стоять код bn. Поэтому подписывайте пункты меню значением display_name.

Ошибки

Проблема Причина Что делать
После замены /a/{index}/: HTTP 404 (HLS) или манифест без аудио (MSS) index взят не из audio_tracks этого ответа Используйте только значения index из audio_tracks
Плеер показывает больше аудиодорожек, чем есть в audio_tracks В манифесте есть аудиодорожки, которые не предназначены для вашего ключа Скройте аудиодорожки манифеста, которых нет в audio_tracks. Сопоставляйте их по lang_tag
Качества из bitrates нет в манифесте Манифест и bitrates не совпадают Не показывайте это качество или воспроизводите src элемента bitrates
Названия приходят не на том языке В запросе нет lang Передавайте lang в каждом запросе /stream

Дальнейшие шаги


Версия руководства 1.4.1, 2026-10-31 · Сообщить о проблеме на этой странице