Введение
Технология Wireless Display становится все более и более популярной на телефонах и планшетных ПК под управлением ОС Android* с того момента, как системы Google начали поддерживать Miracast в ОС Android 4.2. Технология Wireless Display облегчает использование функций расширения экрана телефона для конечных пользователей. Это представляется хорошей возможностью для независимых поставщиков ПО для интеграции функций технологии Wireless Display в их приложениях, в особенности, в играх и видеопроигрывателях.
Однако использование технологии Intel® Wireless Display для поддержки Miracast в ОС Android для телефонов на основе платформы x86 представляется большой проблемой для независимых поставщиков ПО. В данной статье описываются возможности использования двух дисплеев с функциями Miracast на примере онлайнового видеопроигрывателя iQiyi и приложения WPS Office на телефоне K900. Мы надеемся, что в будущем также появятся и многие другие удивительные приложения.
Что такое Miracast
19.сентября 2012 года организация Wi-Fi Alliance официально объявила о создании стандарта Wi-Fi CERTIFIED* Miracast, который является новаторским решением для качественного воспроизведения видеоданных на устройствах без кабелей и подключений к сети. Пользователи могут просматривать фотографии или видео, находящиеся на смартфоне, на большом экране телевизора, совместно использовать экран ноутбука для показа информации, отображаемой на его экране, с помощью проектора в конференц-зале в режиме реального времени и просмотра прямых трансляций программ кабельного телевидения на планшетном ПК. Подключения Miracast выполняются с помощью стандарта Wi-Fi CERTIFIED Wi-Fi Direct* между сертифицированными устройствами без использования сетевых точек доступа.
Связь Miracast основана на непосредственных подключениях между сетевыми узлами Wi-Fi Direct. Далее представлена архитектура Miracast на основе Wi-Fi.
Рисунок 1. Архитектура Miracast*
Существуют четыре режима подключений Miracast, которые показаны на следующем рисунке:
Рисунок 2. Режимы подключения Miracast*
Используя подключения Miracast, вы можете обеспечить связь различных устройств без инфраструктуры точек доступа Wi-Fi (см. топологию 1). Вы также можете подключаться к дисплею с помощью адаптера при одновременном подключении к точке доступа (см. топологию 2). В этом режиме очень удобно смотреть видеофильмы онлайн в домашних условиях. Если у вас есть телевизор с технологией Smart TV, который также поддерживает Miracast, тогда он, точка доступа и смартфон могут подключиться друг к другу (см. топологию 4).
По стандарту Miracast интерактивное взаимодействие источника видео и устройств отображения может выглядеть следующим образом:
Рисунок 3. Управление сеансом Miracast*
Перед установлением подключения источник и устройства отображения обнаруживают друг у друга возможности Miracast. Данное подключение основано на технологии Wi-Fi Direct или TDLS. Источник и устройства отображения устанавливают параметры для сеанса Miracast на основе функции согласования. Процесс согласования использует протокол подключения TCP. Устройства-источники начинают передачу данных на устройства отображения в формате MPEG2-TS, который используется в подключениях UDP.
Во время беспроводной потоковой передачи данных стандарт Miracast поддерживает форматы, которые представлены в таблице 4.
Таблица 4. Форматы передачи данных Miracast*
Miracast в среде Android 4.2
Операционные системы Google начали поддерживать возможности Miracast, начиная с ОС Android версии 4.2. Теперь конечные пользователи могут обмениваться фильмами, фотографиями, видео на сайте YouTube и любыми данными, которые могут транслироваться на экране телевизора HDTV, с помощью технологии беспроводного отображения. Внешний HDTV-приемник отображается как внешний дисплей.
Теперь возможности Miracast на Android поддерживают использование режима дополнительного дисплея и режима презентации (см. следующий рисунок):
Рисунок 5. Режимы, поддерживаемые Miracast*
Режим дополнительного дисплея дублирует содержимое экрана телефона на удаленном дисплее. Частота кадров, транслируемая через адаптер, соответствует разрешению локального дисплея. В этом режиме локальный и удаленный дисплеи включаются и отображают одинаковые данные.
В режиме презентации ОС Android теперь позволяет вашему приложению отображать уникальные данные на дополнительных экранах, подключенных к пользовательскому устройству через кабельное соединение или Wi-Fi. Приложения должны быть настроены для поддержки этого режима, или же они будут по умолчанию оставаться в режиме дополнительного дисплея.
Разработка функций поддержки стандарта Miracast для телефонов на базе архитектуры Intel
Решение Intel Wireless Display, работающее на телефонах и планшетных ПК с ОС Android, полностью совместимо с Miracast. Оно также обеспечивает поддержку некоторых приложений с функциями Miracast на телефонах, имеющих архитектуру Intel.
Одним из них является iQiyi для работы фоновой функции передачи видео. Пользователи могут транслировать видео в фоновом режиме на удаленный дисплей в разрешении 1080p, используя приложение iQiyi, одновременно просматривая видео локально или используя другое приложение, например, электронную почту или браузер, не прерывая фоновое воспроизведение (см. следующий рисунок):
Рисунок 6. Видео-функция BGM приложения iQiyi
Другим приложением является WPS Office с возможностью разделения пользовательского интерфейса на локальном и удаленных дисплеях. При подключении к телевизору с помощью технологии Wireless Display приложение WPS Office может использоваться для демонстрации слайдов PPT на удаленном экране с одновременным отображением замечаний PPT на экране телефона, что очень удобно для вступающего. Мы также планируем добавить функцию отображения таймера на экране телефона, чтобы у выступающего была возможность получать напоминания.
Рисунок 7. Функция разделения пользовательского интерфейса WPS WPS Office
Эти две функции работают в режиме презентации Miracast с использованием аппаратных возможностей телефона на платформе Intel. Два ранее представленных приложения размещены на сайте Intel AppUp® для конечных пользователей, которые те могут установить на свои телефоны на базе платформы Intel.
Пример. Использование возможностей подключения второго дисплея
В этом разделе будет представлено, как выполнить фоновую передачу видео, воспользовавшись приложением iQiyi.
Как мы уже знаем, применение видео-функции BGM осложняется использованием службы для воспроизведения видео в фоновом режиме или корректного отображения видео на экране. Когда пользователи нажимают клавишу перехода на главную страницу (Home), вывод изображения автоматически прекращается, поэтому необходимо использовать вторичный дисплей для показа передаваемого в фоновом режиме видео. Далее показана блок-схема программы:
Рисунок 8. Блок-схема фоновой передачи видео
Для формирования уникальных данных для вторичного дисплея разверните класс Presentation
и используйте функцию onCreate()
. В onCreate()
укажите свой пользовательский интерфейс, вызвав setContentView()
. Являясь дополнением класса Dialog
, класс Presentation
предоставляет область, в которой ваше приложение может отображать уникальный пользовательский интерфейс на вторичном дисплее.
Существует два метода использования вторичного дисплея для презентации. Необходимо воспользоваться прикладным интерфейсом DisplayManager
или MediaRouter
. Простейшим способом выбора дисплея для презентации является использование прикладного программного интерфейса MediaRouter
. Служба медиа-маршрутизатора отслеживает доступные в системе маршруты аудио и видеоданных. Если необходимо показать содержимое на вторичном дисплее, медиа-маршрутизатор предлагает подходящий дисплей для презентации, который должно использовать приложение.
Далее представлено, как можно использовать медиа-маршрутизатор для создания и показа презентации на подходящем дисплее с помощью функции getPresentationDisplay()
.
MediaRouter mediaRouter = (MediaRouter) context.getSystemService(Context.MEDIA_ROUTER_SERVICE); MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute(); if (route != null) { Display presentationDisplay = route.getPresentationDisplay(); if (presentationDisplay != null) { Presentation presentation = new MyPresentation(context, presentationDisplay); presentation.show(); } }
Другим способом выбора дисплея для презентации является непосредственное использование прикладного программного интерфейса DisplayManager
. Служба Диспетчера дисплеев предоставляет функции для перечисления и описания всех подключенных к системе дисплеев, также включая те из них, которые могут быть использованы для презентаций.
Диспетчер дисплеев постоянно отслеживает все дисплеи в системе. Далее представлена идентификация подходящих дисплеев для показа презентаций с помощью getDisplays(String)
и категории DISPLAY_CATEGORY_PRESENTATION
.
DisplayManager displayManager = (DisplayManager) context.getSystemService(Context.DISPLAY_SERVICE); Display[] presentationDisplays = displayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION); if (presentationDisplays.length > 0) { Display display = presentationDisplays[0]; Presentation presentation = new MyPresentation(context, presentationDisplay); presentation.show(); }
Далее показано, как разработчики могут использовать код демонстрационной презентации, приведенный в Android SDK:
\sdk\sources\android-17\android\app\Presentation.java
Заключение
Технология Wireless Display может стать прекрасным стимулом продаж помимо других важных преимуществ программы Intel Inside® для телефонов и планшетов на базе платформ Intel. Независимые поставщики ПО должны обратить свое внимание и использовать все инновационные возможности технологии Wireless Display, в особенности, функции применения двух дисплеев.
Справочные сервисы
- http://www.wi-fi.org
- http://developer.android.com/about/versions/android-4.2.html
- Wi-Fi_Display_Technical_Specification_v1.0.0
© Корпорация Intel, 2013 г. Все права защищены.
*Другие наименования и товарные знаки являются собственностью своих законных владельцев.