This post is also available in: Английский
Популярность мобильных устройств подталкивает большинство онлайн видео проектов на адаптацию своих сервисов к мобильным приложениям (планшетам, смартфонам). Учитывая, что многим онлайн видео сервисам требуется защита видео контента (например, для возможности предоставления библиотеки контента от крупных западных киностудий), то весьма актуальной задачей становится реализация DRM функций в мобильном видео плеере. Как всегда перед Вами множество решений и платформ. Про DRM функции в iOS мы уже недавно писали. Теперь пришло время поговорить про Android DRM.
Прежде всего в отличие от iOS в Android реализован API для работы с DRM решениями на уровне Java. Документация по Android DRM API на официальном сайте Android. Впрочем пользы от этого не особо много — в открытых источниках не очень много информации о решениях поддерживающих такую схему. Подозреваю, что это купленный Google’ом Widevine, возможно кто-то еще.
В качестве DRM для Android мы используем знакомый нам по Windows и MacOS DRM для воспроизведения в браузере (Flash Player) и в приложениях (AIR) Adobe Flash Access. В новой версии Adobe реализовало поддержку DRM в мобильных устройствах на базе Android. Делается это при помощи Flash Player 11 и AIR 3. Рассмотрим реализацию DRM функций в Android на базе Adobe Flash чуть подробнее.
AIR 3
Реализация приложений на Android возможна при помощи AIR приложений, которые позволяют использовать максимум наработок с основной версии онлайн видео сервиса (Flash видео плеер) для создания мобильного видео приложения. С выходом AIR 3 для мобильных устройств Вам потребуется минимум усилий в технической части видео плеера — поддержка DRM реализована на базе OSMF и работает одинаково с остальными платформами (Windows, MacOS). Реализация интерфейса пользователя оптимизированного под планшеты и смартфоны займет гораздо больше времени, т.к. при качественном подходе Вам нужно существенно пересмотреть взаимодействие пользователя с онлайн видео сервисом и доступный набор функций. Примером AIR приложения для Android может служить WatchESPN.
Если Вам не требуется выполнение аутентификации при помощи токена или логина и пароля пользователя, то для воспроизведения DRM контента потребуется простейший код видео плеера:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var factory:MediaFactory = new DefaultMediaFactory(); // create a player and add the video to it player = new MediaPlayer(); // create a media element and add it to the container videoElement = factory.createMediaElement(new URLResource(url)); player.media = videoElement; // start listening to the important events player.addEventListener(PlayEvent.PLAY_STATE_CHANGE, onStateChange); player.addEventListener(DRMEvent.DRM_STATE_CHANGE, onDRMStateChange); player.addEventListener(MediaErrorEvent.MEDIA_ERROR, onMediaError); player.addEventListener(MediaPlayerStateChangeEvent.MEDIA_PLAYER_STATE_CHANGE, onMPSC); // create video screen container = new MediaContainer(); addChild(container); container.addMediaElement(videoElement); |
Стоит отметить, что этот код ничем не отличается от кода простейшего OSMF видео плеера. Я же говорил, что особых усилий не потребуется 🙂
Сам процесс создания мобильного приложения в среде разработки Flash Builder 4.5 хорошо описан в документации Adobe и с этим не должно возникнуть особых проблем. Тем более, что Flash Builder 4.5 позволяет выполнять удобную отладку AIR приложений на мобильных устройствах. Единственное, что важно отметить — это установка AIR 3 на пользовательском устройстве. В том случае если AIR 3 не будет установлен, или будет более старая версия, то Ваше приложение не получит доступа к DRM интерфейсам. Поддержку Adobe Flash Access в приложении можно легко определить при помощи свойства DRMManager.isSupported.
Flash Player 11
Воспроизведение DRM контента в браузере мобильных устройств осложняется тем, что у Вас как у разработчика нет удобных средств отладки и детектирования проблем как в случае с AIR приложением. С другой стороны есть существенный плюс — требуется минимум изменений в видео плеере по сравнению с версией для браузеров компьютеров и тестировать можно на них (ведь основная задача Flash Player — это реализация кросс-платформенного исполнения единой логики приложения). Стоит отметить, что Adobe решила прекратить развитие Flash Player плагина для мобильных браузеров (Android) в пользу усиленного развития мобильных приложений на базе AIR (Flash приложения). Подробности в блоге Kevin’а Towes’а.