379
edits
Changes
→STATUS
;Версия API
:>= 1
;Описание
:Данное сообщение отправляется периодически для информирования клиента о текущем статусе загрузки контента. Основное назначение этого сообщение - дать клиенту возможность отображать пользователю о том, что сейчас происходит на движке.▼
;Синтаксис
<tt>STATUS ''status_string''</tt>
;Параметры
▲Данное сообщение отправляется периодически для информирования клиента о текущем статусе загрузки контента
▲<tt>'''status_string'''</tt> - строка описанного ниже формата
Если идет проигрывание основного контента
Если идет проигрывание рекламного ролика (рекламный ролик и основной контент описываются отдельно; например, рекламный ролик уже полность загружен, а основной контент проходит стадию пребуферизации):
▲ <tt>STATUS main:status_string</tt>
<tt>STATUS main:''status_description''|ad:''status_description''</tt>
;Возможные значения <tt>''status_description:''</tt>
* движок ничего не делает - <tt>'''idle'''</tt>▼
* движок загружает транспортный файл (обрабатывает команду <tt>LOADASYNC</tt>) - <tt>'''loading'''</tt>
* движок выполняет предварительную инициализацию воспроизведения (движок переходит в это состояние после получения команды <tt>START</tt> от клиента) - <tt>'''starting'''</tt>
* ошибка - <tt>'''err;error_id;error_message'''</tt> (код и описание)▼
* проверка - <tt>'''check;progress'''</tt>▼
* пребуферизация - <tt>'''prebuf;progress;time'''</tt>▼
* контент загружается либо уже полностью загружен - <tt>'''dl'''</tt>
* буферизация - <tt>'''buf;progress;time'''</tt>▼
* ожидание достаточной скорости - <tt>'''wait;time'''</tt>▼
Ко всем <tt>status_string</tt> (кроме <tt>idle, loading, starting, err, check</tt>) добавляются общие данные:▼
<tt>total_progress;immediate_progress;speed_down;http_speed_down;speed_up;peers;http_peers;downloaded;http_downloaded;uploaded</tt>▼
* <tt>'''immediate_progress'''</tt> - сколько непрерывных данных закачано начиная с текущей позиции (для отображения кол-ва закачанного в бегунке)▼
* <tt>''speed_down''</tt> - скорость загрузки (Кбайт/с)
* <tt>''http_speed_down''</tt> - скорость загрузки от прямых http-источников (Кбайт/с)
* <tt>''speed_up''</tt> - скороть отдачи (Кбайт/с)
* <tt>''peers''</tt> - количество подсоединенных пиров
* <tt>''http_peers''</tt> - количество подсоединенных прямых http-источников
* <tt>''downloaded''</tt> - объем загруженных данных (байт)
* <tt>''http_downloaded''</tt> - объем загруженных по http данных (байт)
* <tt>''uploaded''</tt> - объем отданных данных (байт)
Все числа передаются как integer.▼
Все progress принимают значение от 0 до 100.▼
▲движок ничего не делает - <tt>'''idle'''</tt>
<tt><nowiki>Движок ничего не делает:
Загружается транспортный файл:
▲ошибка - <tt>'''err;error_id;error_message'''</tt> (код и описание)
<<STATUS main:loading
Инициализация воспроизведения:
▲проверка - <tt>'''check;progress'''</tt>
<<STATUS main:starting
Пребуферизация 0%, еще нет подсоединенных пиров:
▲пребуферизация - <tt>'''prebuf;progress;time'''</tt>
<<STATUS main:prebuf;0;2147483648;0;0;0;0;0;0;0;0;0;0;
Пребуферизация 20%, скорость загрузки 328 Кбайт/с, подсоединено 7 пиров, загружено 5505024 байт:
<<STATUS main:prebuf;20;2723;0;0;328;0;0;7;0;5505024;0;0
▲буферизация - <tt>'''buf;progress;time'''</tt>
▲ожидание достаточной скорости - <tt>'''wait;time'''</tt>
▲Ко всем <tt>status_string</tt> (кроме <tt>idle, err, check</tt>) добавляются общие данные:
▲ <tt>total_progress;immediate_progress;speed_down;http_speed_down;speed_up;peers;http_peers;downloaded;http_downloaded;uploaded</tt>
▲<tt>'''total_progress'''</tt> - сколько всего закачано по данному файлу
▲<tt>'''immediate_progress'''</tt> - сколько непрерывных данных закачано начиная с текущей позиции (для отображения кол-ва закачанного в бегунке)
▲Все числа передаются как integer.
▲Все progress принимают значение от 0 до 100.
Пребуферизация 90%, скорость загрузки 420 Кбайт/с, подсоединено 9 пиров, загружено 11659264байт:
<<STATUS main:prebuf;90;3299;1;0;420;0;0;9;0;11659264;0;0
Идет загрузка контента, загружен 1%, скорость загрузки 442 Кбайт/с, подсоединено 10 пиров, загружено 13920256:
▲'''Примеры:'''
▲ STATUS main:dl|ad:dl</tt>
Рекламный ролик полность загружен и воспроизводится, основной контент пребуферизируется (20%):
'''Пример трансформация статусов в текстовые сообщения, понятные пользователю:'''▼
<<STATUS main:prebuf;20;2723;0;0;328;0;0;7;0;5505024;0;0|ad:dl;100;0;0;0;0;0;0;13920256;0;0</nowiki></tt>
prebuf - Пребуферизация xx%
buf - Буферизация xx%
wait - Ожидание достаточной скорости
err - выводим сообщение об ошибке
loading - Загрузка...
starting - Запуск...
dl, idle - ничего не выводим</tt>