Настройки воспроизведения¶
Ниже описано, как дать пользователю выбрать качество видео, аудиодорожку
и субтитры. Все нужные данные приходят в ответе /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:
- Выведите элементы
bitratesв меню качества, подписав их значениемname. - Когда пользователь выберет качество, используйте один из способов:
- Воспроизведите
srcэтого элемента — в нем только выбранное качество. Начните воспроизведение с текущей позиции. - Если ваш плеер умеет переключать варианты в манифесте, найдите
вариант с именем
{bitrate}p, например720p. Имя указано вNAMEдля HLS или вidэлементаRepresentationдля DASH. Показывайте только те качества, которые есть и вbitrates, и в манифесте.
- Воспроизведите
- Чтобы вернуться к автоматическому выбору качества, снова
воспроизведите
srcиз ответа.
Для видео с DRM берите license_server из того же элемента bitrates.
У 4K-версии (is_uhd: true) только одно качество — 2160.
Выбор аудиодорожки¶
Меню аудиодорожек¶
- Показывайте только аудиодорожки из
audio_tracksв том порядке, в котором они идут в массиве. - В качестве подписи используйте
display_name. Язык определяйте поlang_iso_639_1илиlang_tag. Не используйте для этогоlang: это код MEGOGO, а не код ISO. - Запускайте воспроизведение с аудиодорожкой, у которой
is_active: true. MEGOGO выбирает ее поlangиз запроса. - Если у аудиодорожки
require_subtitles: true, добавьте к ней пометку, например «с субтитрами». См. Субтитры.
Для одного языка может быть несколько аудиодорожек, например
«Украинский» и «Украинский с тифлокомментарием». lang_tag у каждой
аудиодорожки уникален.
Смена аудиодорожки¶
Способ зависит от манифеста.
В URL src есть сегмент /a/{number}/, например /a/105/ (HLS
версии 3, MSS). В таком манифесте только одна аудиодорожка:
- Замените в
srcпервый сегмент/a/{number}/на/a/{index}/выбранной аудиодорожки. Если используется фиксированное качество, сделайте то же самое вsrcэлементаbitrates. - Перезапустите плеер с новым URL с текущей позиции.
Аудиодорожки описаны в манифесте (DASH, HLS с несколькими аудиодорожками):
- Найдите в манифесте аудиодорожку с тем же
lang_tag:LANGUAGEдля HLS илиlangэлементаAdaptationSetдля DASH. - Выберите эту аудиодорожку в плеере.
- Не показывайте аудиодорожки из манифеста, которых нет в
audio_tracks.
Запоминайте выбор пользователя для этого видео. В сериале используйте ту же аудиодорожку во всех сериях, где она есть.
Выбор субтитров¶
В массиве subtitles перечислены файлы субтитров (type: srt), у
каждого элемента есть url. Чтобы показать субтитры, загрузите файл и
выведите его в вашем плеере.
У каждой аудиодорожки есть subtitles_policy:
| Поле | Назначение |
|---|---|
allowed_subtitles |
Значения id субтитров, которые пользователь может выбрать для этой аудиодорожки. Показывайте в меню только их |
is_disableable |
false — с этой аудиодорожкой субтитры нельзя выключить. Не показывайте в меню пункт «Выкл.» |
preselect |
id субтитров, которые нужно включить, если is_disableable равен false |
Когда пользователь выбирает аудиодорожку:
- Если
is_disableableравенfalse, включите субтитры сidизpreselect. Язык субтитров пользователь сменить может, а выключить их — нет. - Если
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 · Сообщить о проблеме на этой странице