Версия API #5
Доступна на прошивках linux-qt от 4.2.x.
Медиацентры TVIP отображают Web-контент с использованием движка WebKit.
JavaScript API в медиацентрах TVIP базируется на следующих основных объектах:
Объекты не требуют явного создания или какой-либо инициализации и доступны из любой Web-страницы, открытой в STB-браузере.
С кодами клавиш пульта вы можете ознакомиться тут.
Добавляет или заменяет точку монтирования с указанным id идентификатором. Если temp равно false, точка монтирования будет сохранена после перезагрузки устройства, если true - точка будет удалена при перезагрузке или перезапуске приложения. Возможные типы точек монтирования (type): 1 - SMB, 2 - NFS. Имя точки в системе монтирования (например, в сплывающих сообщениях): name. Параметр options задает специфические опции в виде объекта:
SMB:
{ "address": <address>, "folder": <folder>, "username": <username>, "password": <password> }
Здесь, <address> - IP-адрес, доменное или NetBIOS-имя сервера, <folder> - имя расшаренного ресурса на сервере, <username> и <password> - опциональные данные для авторизации на сервере.
NFS:
{ "address": <address>, "folder": <folder> }
Здесь, <address> - IP-адрес или доменное имя сервера, <folder> - полный путь к расшаренному каталогу на сервере.
Включить поддержку CAS/DRM для медиа потоков, запускаемых в данном портале. Типа CAS/DRM задается параметром name. Например, «tvip» «viewright_web», «viewright_iptv», «ares». Опции задаются как key-value в объекте options.
Включить или выключить навигацию по отдельным элементам (кнопкам, ссылкам) веб-страницы.
Запустить Системный URI (кроме режима «Для всей системы»).
Возвращает номер версии API.
Возвращает версию прошивки медиацентра.
Возвращает идентификатор текущего активного языка интерфейса ('en', 'ru').
Возвращает текущий часовой пояс (например, Europe/Moscow).
Возвращает идентификатор модели устройства. Например, s410.
Возвращает текущий режим дисплея («1080i», «1080p», «720p», «576i», и т.д.).
Возвращает список имен каталогов в системном каталоге directory.
[ "Dir1", "Dir2", "Dir3" ]
Возвращает список объектов с данными о файлах (без каталогов) в системном каталоге directory.
[ { "name": "file1", "size": 1234567 }, { "name" : "file2", "size" : 44444 } ]
name - имя файла в каталоге, size - размер файла в байтах.
Получить переменную из постоянного хранилища браузера. Если name не найден, вернется пустая строка.
Возвращает строку, содержащую основной MAC-адрес приставки. Обычно это MAC-адрес Ethernet.
Возвращает объект, содержащий информацию о сетевом шлюзе по-умолчанию (default route). Пример объекта:
{ "ipaddress": "192.168.1.1", "interface": "eth0", "metric": 1, }
Поля объекта: ipaddress - IP-адрес шлюза, interface - имя интерфейса, metric - метрика.
Возвращает список имен сетевых интерфейсов. Пример:
["eth0","ip6tnl0","sit0", "wlan0"]
Возвращает объект, содержащий информацию о статусе сетевого интерфейса с именем name. Имя можно получить из метода getNetworkInterfaces. Пример объекта:
{ "dns1":"8.8.8.8", "dns2":"", "fullduplex":true, "gateway":"192.168.1.1", "ipaddress":"192.168.1.100", "mac":"10:27:BE:04:04:04", "mask":"255.255.255.0", "running":true, "speed":100 }
Поля объекта: mac - MAC-адрес интерфейса (может совпадать или не совпадать с основным MAC); running - true, если интерфейс подключен, иначе false; fullduplex - true, если соединение полнодуплексное, иначе false; speed - скорость подключения в Мбит/c; ipaddress - IP адрес на интерфейсе (пусто, если нет); mask - маска подсети; gateway - шлюз; dns1 и dns2 - адреса DNS-серверов.
Возвращает объект, содержащий информацию о статистике сетевого интерфейса с именем name. Имя можно получить из метода getNetworkInterfaces. Пример объекта:
{ "b_packets_received":0, "b_packets_sent":0, "bytes_received":988250211, "bytes_sent":80635584, "d_packets_received":32, "d_packets_sent":0, "m_packets_received":27303, "m_packets_sent":0, "packets_received":974195, "packets_sent":508277, "u_packets_received":0, "u_packets_sent":0 }
Поля объекта: bytes_received и bytes_sent - сколько всего получено и отправлено байт через интерфейс; packets_received и packets_sent - сколько всего получено и отправлено пакетов через интерфейс; u_packets_received и u_packets_sent - сколько получено и отправлено юникаст пакетов через интерфейс; b_packets_received и b_packets_sent - сколько получено и отправлено бродкаст пакетов через интерфейс; m_packets_received и m_packets_sent - сколько получено и отправлено мультикаст пакетов через интерфейс;
Производит поиск рабочих групп в сети и возвращает их список. Например:
['WORKGOUP', 'MYGROUP']
Производит поиск серверов в указанной параметром group рабочей группе и возвращает список NetBIOS имен серверов. Например:
['MYPC', 'USER2']
Производит поиск доступных сетевых ресурсов на сервере по NetBIOS-адресу или IP-адресу, указанному параметром server и возвращает список имен ресурсов. Например:
['shared folder', 'Загрузки']
Возвращает true, если устройство было переведено в режим сна командой setStandBy. Иначе возвращает false. Только для режима «Для всей системы».
Возвращает список объектов смонтированных накопителей (локальных и сетевых).
[ { "label": <label>, "path" : <ospath>, "fstype" : <file_system>, "writable": <writable>, "status": <status>, "size": <size>, "free" <free> }, ]
Поля объекта: label - имя (метка) смонтированного ресурса для отображения пользователю; path - каталог, в который смонтирован ресурс; fstype - тип файловой системы (варианты: vfat, ntfs, ext2, ext3, nfs, cifs; writable - разрешена ли запись в файловую систему («1» - да, «0» - нет); status - статус точки монтирования («0» - требуется монтирование, «1» - в процессе монтирования, «2» - смонтировано успешно, «3» - ошибка монтирования, «4» - в процессе размонтирования, «5» - размонтировано, «6» - ошибка размонтирования), size - размер файловой системы, free - доступное место.
Возвращает адрес UDP proxy сервера, указанный в настройках.
Возвращает код родительского контроля, установленный в настройках. Если режим Безопасности выключен, то всегда возвращается пустое значение.
Возвращает true, если в системной файловой системе существует каталог с именем osPath, иначе false.
Возвращает true, если в системной файловой системе существует файл (не каталог) с именем osPath, иначе false.
Удаляет файл по пути path в пределах разрешенных директорий.
Запустить системные настройки Tvip.
Запустить Веб-браузер и открыть страницу по адресу url. Перейти по адресу backUrl в случае выхода из браузера обратно в портал.
Вызвать домашний экран Tvip (кроме режима «Для всей системы»).
Выводит отладочное сообщение в системную консоль (Linux) или logcat (Android).
Полностью перезагрузить систему.
Удалить точку монтирования из менеджера точек монтирования. id - уникальный идентификатор точки монтирования.
Установка цвета UI, который будет считаться прозрачным. color - цвет в формате RGB.
Устанавливает HTTP-заголовок для будущих HTTP-запросов браузера. header - имя заголовка, value - значение заголовка. Если value пустая строка, то удаляется ранее установленный заголовок.
Сохранить переменную в постоянном хранилище браузера. Все переменные доступны всем страницам браузера.
Задать фильтры имен файлов для getDirectoryFiles и getDirectoryDirs. Фильтры разделяются символом |. Можно использовать символы ? и *. Например: *.avi|*.mp3
В режиме «Для всей системы» задает переход на определенный Url при нажатии кнопки Home.
Задает URL, на который будет осуществлен переход, если не удается загрузить страницу, запрошенную порталом.
Если enabled=true, событие нажатия кнопки «Включение клавиатуры» на пульте (Cursor key) будет передаваться в JavaScript, вместо стандартного обработчика отображения виртуальной клавиатуры.
Если enabled=true, событие нажатия кнопки «Menu» на пульте будет передаваться в JavaScript, вместо вызова стандартного меню Tvip.
Если enabled=true, событие нажатия кнопки «S.INFO» на пульте будет передаваться в JavaScript, вместо вызова стандартной системной информации Tvip.
Если enabled=true, событие нажатия кнопки «Настройки» на пульте будет передаваться в JavaScript, вместо вызова стандартных настроек Tvip.
Переводит приставку в режим сна (enabled=true) или возвращает из режима сна (enabled=false). Только для режима «Для всей системы».
Устанавливает адрес Web-прокси сервера для использования с данным порталом. Все последующие запросы портала будут идти через прокси. Параметры: proxy - адрес прокси сервера, exclude - массив с серверами, которые не должны идти через прокси (либо IP-подсеть, либо домен).
Отобразить (show=true) или скрыть (show=false) виртуальную клавиатуру.
Сбросить настройки: прозрачного цвета; HTTP-заголовков; фильтра файлов.
Сбросить воспроизведение. При переходе между страницами, если не требуется продолжение проигрывания, нужно вызывать этот метод.
Начать проигрывание видео по заданному URL или непосредственному пути в файловой системе.
Параметр mode может принимать значения:
vod - данный URL содержит VOD-файл (с конечной длиной);
live - данный URL содержит live ТВ-поток (можно использовать DVR и MPEGTS шифрование), либо адаптивный HLS;
live_ts - тоже, что live, но при постановке на паузу включается локальный Timeshift.
Примеры:
playUrl ("udp://239.1.1.1", "live"); // начать проигрывание multicast-потока; playUrl ("http://domain.tv/movies/movie.mkv", ""); // начать проигрывание видео-файла по http; playUrl ("http://domain.tv/hls/playlist.m3u8", "live"); // начать проигрывание HLS-видео;
Параметр options позволяет задавать дополнительные опции воспроизведения:
playUrl("udp://239.1.1.1", { "mode" : "live", "audio_index" : 1, "subtitle_index": 3 } );
Возможные опции:
mode - тоже, что предыдущем варианте.
position - начальная позиция воспроизведения в миллисекундах.
audio_index - индекс аудио дорожки.
audio_pid - PID аудио дорожки (в случае MPEGTS).
subtitle_index - индекс дорожки субтитров.
subtitle_pid - PID дорожки субтитров (в случае MPEGTS).
Устанавливает размер окна видео. Координаты устанавливаются относительно текущего режима видео выхода.
Если w = 0 и h = 0, используется полноэкранный режим.
Если onTop = true, видео окно рисуется поверх UI.
Остановить воспроизведение, если оно было запущено.
Поставить воспроизведение на паузу.
Продолжить воспроизведение, если оно было поставлено на паузу.
Установить позицию воспроизведения на position в миллисекундах. Необходимо учитывать, что начало воспроизведения - это minPosition - см. ниже.
Добавить к текущему проигрываемому файлу субтитры из внешнего файла по адресу url. Команда вызывается после playUrl. Опциональный параметр encoding устанавливает кодировку текста файла субтитров.
Возвращает URL текущего или последнего проигранного потока.
Возвращает режим (второй параметр playUrl) текущего или последнего проигранного потока.
Возвращает текущую позицию воспроизведения.
Возвращает минимальную позицию воспроизведения (т.е. начало контента).
Возвращает максимальную позицию воспроизведения (т.е. конца контента).
Устанавливает громкость звука в интервале от 0 до 100. Только для режима «Для всей системы».
Возвращает текущую громкость звука в интервале от 0 до 100. Только для режима «Для всей системы».
Отключает (mute=true) или включает (mute=false) звук. Только для режима «Для всей системы».
Возвращает true, если звук выключен, иначе false. Только для режима «Для всей системы».
Возвращает тип контейнера последнего проигрываемого контента (например, mpegts, avi, matroska).
Возвращает количество медиапотоков в последнем проигрываемом контенте (аудио, видео, субтитров, итд).
Возвращает объект с информацией о медиапотоке с номером index.
{ "type": <videotype>, "id": <id>, "codec": <codec>, "lang" : <lang> }
Здесь: videotype - тип медиапотока:«v» - видео, «a» - аудио, «s» - субтитры; id - внутренний идентификатор (PID); codec - название кодека потока; lang - для аудиопотоков 3 буквенный код языка.
Возвращает номер потока с видео-дорожкой, проигрываемой в данный момент.
Возвращает номер потока с аудио дорожкой, проигрываемой в данный момент.
Возвращает номер потока с дорожкой субтитров, проигрываемой в данный момент.
Устанавливает номер активной аудио дорожки (index).
Устанавливает номер активной дорожки субтитров (index).
Устанавливает режим aspect ratio. На данный момент поддерживаются значения: «box» - Оригинал, «full» - На весь экран, «zoom» - Увеличенный.
Добавляет новое задание на запись эфира.
Здесь: name - произвольное имя записи, url - URL потока (поддерживаются потоки в формате MPEGTS через UDP, RTP и HTTP, path - локальный путь для записи, start и end - время начала и окончания записи в UNIX TIMESTAMP либо в формате «YYYYMMDDTHHmmss».
Возвращает уникальный идентификатор созданного задания.
Удаляет задание на запись с уникальным идентификатором id. Если removeFile=true, удаляется также записанный на диск поток. Возвращает true в случае успешного удаления.
Меняет время начала и/или окончания записи с уникальным идентификатором id. Если требуется поменять только одно из значений, то второе - пустая строка. Формат start и end см. в описании addRecord.
Возвращает список уникальных идентификаторов заданий, которые добавлены в настоящий момент.
Возвращает объект с параметрами записи с уникальным идентификатором id.
{ "id": <id>, "name": <name>, "startTime": <start>, "endTime" : <end>, "url" : <url>, "status" : <status> }
Здесь: <id>, <name>, <start>, <end> - соответствуют параметром метода addRecord; <status> - статус записи: «waiting» - ожидает запись, «recording» - запись в процессе, «finished» - запись завершена, «error» - произошла ошибка.
TvipEvent содержит Callback функции, которые можно переназначить для получения событий.
onPlayerStateChange(int oldState, int newState);
Вызывается при изменении статуса воспроизведения медиаплеера. oldState - предыдущий статус плеера, newState - новый статус плеера.
Возможные значения статусов плеера:
onSystemEvent(String codename, Object args);
Вызывается при возникновении системных событий.
Варианты codename: