Особенности разработки приложений для Philips NetTV

Philips-NetTV

В этой статье мы расскажем вам об особенностях разработки приложений для телевизоров на платформе Philips NetTV.

Кратко перечислим основные трудности в разработке приложений Philips NetTV:

1) Медленное исполнение JS скриптов.
Когда в приложении начинает исполняться любой JS код, на экране отображается индикатор загрузки. При этом визуально кажется, что приложение «думает» (фактически, так оно и есть). Однако при этом нет возможности определить, что происходит: загружается новая веб-страница, или просто обрабатывается нажатие клавиши на ПДУ.

Использование таких библиотек как jquery крайне затруднено. От них лучше отказаться сразу. Ajax запросы также выполняются совсем не прозрачно для пользователя. В этом случае, опять-таки, появится злосчастный индикатор загрузки.
Если планируется поддержка старых версий телевизоров, то нужно будет еще отказаться и от CSS3-теней и прозрачности. Да и setTimeout лучше использовать по минимуму.

2) События
Вследствие вышесказанного навешивать события на нажатие клавиши (например, при навигации влево/вправо) нужно крайне аккуратно, и только если в этом есть крайняя необходимость. Про jQuery рекомендуем забыть сразу. А это означает существенные ограничения при реализации какого-либо интерактивного функционала. Приходится либо отказываться от интерактивности, либо заставлять пользователей мириться с медленным откликом приложения на навигацию (задержка может достигать нескольких секунд).

3) Навигация
Для реализации ‘интеллектуальной’ навигации нужно использовать spatial navigation. Суть данного метода заключается в определении направления навигации в CSS стилях HTML элемента (nav-left, nav-right). С одной стороны, это удобно: можно определять возможные направления навигации для кажого элемента в момент верстки или при инициализации страницы, используя скрипт. Но в том случае, когда элементов навигации слишком много, или когда их количество и положение меняется динамически, управлять всем этим становится не очень удобно, поскольку приходится менять возможные направления навигации для всех связанных элементов.

4) Приложение должно соответствовать стандарту CE-HTML (HTML For Consumer Electronics — HTML для бытовой электроники). По сути это значит, что приложения поддерживают следующие стандарты:

  • ECMAScript 262, 3 издание
  • acceptchecksnow.com

  • XHTML 1.0 transitional/strict
  • CSS TV Profile 1.0
  • XMLHttpRequest object
  • DOM level 2.0 (Core, Style, Events, HTML),

а также ряд специфических расширений для CE-устройств:

  • Multi-tap или любой другой специфический формат, реализующий CSS3 input-format.
    Аудио/видео кодеки.)
  • JS-хуки и интерфейсы для «общения» с ПДУ.

Вспомогательные данные в user-agent. При получениии таких данных сервер может переходить в режим «XML UI Listing», чтобы дать клиенту возможность использовать необходимый CE-HTML интерфейс из числа предложенных. Специфические интерфейсы для конкретного устройства (поддержка шрифтов, размеры и др.) также основаны на том же самом 10-foot user interface.

5) Эмулятор
Эмулятор не поддерживает воспроизведение видео (наверное, по лицензионнным причинам). Что затрудняет отладку разрабатываемого видеоплеера (большей части приложений приходится разрабатывать видеоплеер).

6) HTML-движок не терпит невалидного XML кода — весь код должен соответствовать спецификации XML. Если в коде встречаются незакрытые теги, на экране телевизора появляется ошибка; при этом страница не будет отображена. На это следует обращать внимание, особенно если наполнением контентом занимаются неподготовленные к таким нюансам лица.

7) Marlin DRM
Телевизоры Philips поддерживают Marlin DRM, что дает возможность лицензировать контент мейджоров для распространения через приложение Philips NetTV.

Лояльных зрителей вашим приложениям Philips NetTV!