This post is also available in: Английский
С ростом популярности Android устройств для многих Интернет проектов встает вопрос выпуска специальных приложений для счастливых обладателей Android’ов (смартфоны и планшетники). На рынке смартфонов в США Android уже опережает iOS, но среди планшетников успех не так велик и iPad лидирует с большим отрывом. С другой стороны, практически любой Интернет ресурс обладает некоторой библиотекой видео контента, которую желательно сделать доступной для пользователей с разными устройствами. В этой статье мы рассмотрим особенности разработки приложений, предоставляющих возможности просмотра видео контента, разные подходы в реализации видео плееров, плюсы и минусы технологий.
Для включения видео в Android приложение есть несколько доступных механизмов:
- Native App — класс VideoView (или более низкоуровневый MediaPlayer), входящий в Android SDK
- Web App — Flash Player видео плеер, включенный в WebView элемент
- AIR видео плеер, скомпилированный в приложении — Flash App
Все три механизма позволяют решить задачу размещения видео контента в приложении и обладают своими преимуществами. Рассмотрим более подробно эти технологии с примерами реализации таких приложений.
Native App
Для создания видео плеера нужно при разработке макета выделить область для VideoView элемента, а для начала воспроизведения указать приблизительно следующий код:
1 2 3 4 5 6 7 8 | video = (VideoView) findViewById(R.id.videoview); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(video); video.setMediaController(mediaController); video.setKeepScreenOn(true); video.setVideoPath("http://www.denivip.ru/trailer.mp4"); video.start(); video.requestFocus(); |
При запуске приложения вы получите что-то похожее на следующий скриншот (сделано с Motorola Xoom на базе Android 3.1):
В этом случае в качестве панели управления видео плеером используется MediaController класс, который не позволяет реализовать уникальный дизайн своего видео плеера. В случае если вам нужен уникальный видео плеер по вашему дизайну, то лучшим вариантом будет реализовать воспроизведение контента при помощи MediaPlayer класса. В этом случае придется хорошенько повозиться с особенностями использования MediaPlayer и видео экрана SurfaceHolder в Android среде, но в результате вы получите существенно больше контроля над процессом отображения видео.
Преимущества:
- Простота встраивания в существующее приложение
- Гибкость управления воспроизведением видео
- Поддержка всех видео форматов, доступных в платформе
- Максимально эффективное использование возможностей платформы
Недостатки:
- Сложность разработки нестандартных интерфейсов
- Фрагментация технических параметров разных устройств
- Мало сотрудников с опытом разработки Android видео приложений
- Проблемы с защитой контента
- Очень специфично для разных платформ: Android (Java), iOS (Objective C)
Web App
Web приложения — это особый способ разработки и запуска приложений для Android (да и других платформ). Суть метода заключается в создании приложения обертки, отображающего специально подготовленный веб контент. Web App приложение — это специальный браузер на базе WebView элемента, логика работы браузера и внешний вид определяется разработчиком приложения. Официальная документация по Web App здесь. Для создания такого приложения требуется незначительное количество времени на разработку приложения обертки и стандартный процесс HTML верстки страниц / экранов приложения под нужные размеры экрана устройств. Такой подход позволяет по максимуму использовать существующие web наработки.
Важной особенностью при разработке видео приложений для Android является возможность включения HTML5 видео плеера и Flash видео плеера в интерфейс пользователя. Если у вас уже есть видео плеер, используемый в web сайте, то вы легко сможете его адаптировать под размеры экрана Android устройства, скорее всего вам даже не потребуется транскодировать контент к новым форматам. Хотя конечно очень важно не забыть про адаптацию инструментов управления под возможности устройств — пользователи смартфонов и планшетников используют пальцы для управления, а не мышки.
Использование веб приложений является очень эффективным способом поддержки всего разнообразия новых платформ (смартфоны, планшетники и даже ТВ). Из сложностей можно лишь отметить необходимость трудоемкой оптимизации веб приложений для наиболее приятного использования приложения пользователями в случае медленного Интернет соединения (динамическая подгрузка контента).
Преимущества:
- Скорость и простота разработки
- Использование существующего опыта веб разработки
- Гибкость интерфейса приложения — серверная HTML верстка
- Преемственность дизайна видео плеера
- Эффективное использование существующей видео библиотеки
- Дополнительная кросс-платформенность HTML
Недостатки:
- Особенности работы Flash Player под Android
- У пользователя может быть не установлен Flash Player
- Ограничение поддерживаемых видео форматов
Flash App
Альтернативный способ разработки приложений для мобильных платформ — использование Flash платформы для компиляции Android и iOS приложений. В этом случае вы разрабатываете все приложение как Flash компоненту для обычного сайта и лишь в самом конце указываете компиляцию с параметрами нужных устройств. Это особенно эффективно если у ваш основной проект также по большей части состоит из Flash — например, при наличии большого числа анимационных эффектов. В конечном итоге вы можете встроить любой видео плеер с абсолютно любым дизайном. Так никто не мешает использовать популярный StrobeMediaPlayback видео плеер для реализации основного интерфейса видео плеера.
Для работы вам потребуется Flash Builder 4.5
Преимущества:
- Adobe берет на себя все особенности разработки приложений под разные платформы: Android, iOS
- Использование существующих наработок Flash приложений
- Хорошая доступность Flash разработчиков на рынке труда
- Возможность защиты контента при помощи RTMPE
- Возможность защиты контента при помощи Flash Access в ближайшем будущем
Недостатки:
- Поддержка только поддерживаемых во Flash видео форматов
- Трудоемкость Flash разработки как правило существенно выше HTML верстки
Подготовка видео для Android
В большинстве случаев Android девайс справится с вашим существующим видео контентом и его не потребуется перекодировать для новых девайсов. Но если вам нужно оптимальное качество, доступное на устройстве, и вам не жалко дополнительного дискового пространства под хранение все видео библиотеки в дополнительном формате, то конечно стоит задуматься об этой задаче. Особенности подготовки видео контента для Android устройств хорошо описаны в документации Adobe здесь и здесь. При наличии фермы транскодирования видео контента задача сведется к созданию нескольких дополнительных профилей подготовки видео.
Какие сложности вы встречали при разработке мобильных приложений? Что получалось не так как хотелось и какие ограничения больше всего мешают реализовать вам потенциал? Будем рады вашим комментариям.
Мобильного успеха вашим приложениям!