Приложение chromecast для андроид что это за программа
Chromecast built-in – это приложение, созданное Google специально для своих устройств. Оно позволяет транслировать видео с любого электронного носителя на телевизоры, использующие Android TV. Особенно удобная функция для тех, кто не любит возиться с кабелем HDMI.
Функционал приложения
Оно подойдет не для всех платформ, так как узкоспециализированное и работает только на телевизорах андроид. Однако, благодаря ему можно просматривать желаемые видео на большом экране, что довольно удобно. Это делается легко и не потребует много времени. Достаточно установить приложение, синхронизироваться с телевизором и выбрать видео, которое нужно воспроизвести. Дальше программа все сделает самостоятельно.
Не стоит бояться, что будет сложная и долгая настройка телевизора и телефона или, что они будут проходить синхронизацию несколько часов. Все намного проще и быстрее, так как приложение адаптировано под андроид устройства, то оно автоматически будет видеть доступную для подключения электронику. Поэтому начать трансляцию на плазму не так сложно, как кажется.
Также стоит отметить, что одним из условий успешной синхронизации будет являться сертификация от Google. Если телевизор был куплен бракованный, не официальный, несертифицированный, то в таком случае данное приложение не поможет. Итак, если разобраться с функционалом Chromecast built-in, то станет понятно его основное предназначение – это синхронизировать видео контент с телефона, планшета или любого другого электронного устройства на телеэкран. При этом должно соблюдаться несколько условий:
- Телевизор серии Android TV, в любом другом случае приложение не сможет его распознать.
- Конечное устройство проигрывание должно быть с сертификацией от Google, иначе телевизор и электронный девайс не синхронизируются.
Качества
Несмотря на ограниченность действий приложения, оно выполняет важную функцию, обеспечивая тем самым комфорт человека. Приятна простота использования и понятная настройка.
Отсутствие русификация ничуть не влияет на оценку работы, подключить девайс к телевизору возможно даже без особых знаний в иностранных языках. Также стоит отметить красивый дизайн, выполненный в минималистических тонах. При этом, приложение не имеет как такового меню, поскольку является элементом настройки, поэтому не занимает много места. Отсутствие лишних мегабайтов в памяти устройства не может не радовать.
Поэтому, если учитывать все качества, плюс добавить то, что Chromecast built-in можно скачать бесплатно, можно сделать вывод, что это довольно важное приложение, но только для специализированных устройств.
Все приложения и игры на нашем сайте проходят обязательную проверку антивирусом с последними сигнатурами.
Привет! Решил подготовить сегодня интересную, полезную и актуальную статью по технологии Google Cast. Почему актуальную, а потому, что телевизоры, которые работают на Android TV появились относительно недавно, и только набирают популярности. А если у вас телевизор на Android TV (пока что это Philips, или Sony) , то вы можете пользоваться всеми фишками технологии Google Cast без дополнительных устройств. Не нужно покупать специальный адаптер Google Chromecast, который стоит примерно 40-50 долларов.
Забегая наперед, скажу, что Google Cast это одна из функций моего телевизора Philips 43PUS7150/12, которой я действительно пользуюсь, и пользуюсь часто. Сейчас я расскажу что это за технология, какие у нее возможности, и как я пользуюсь Google Cast на своем телевизоре с Android TV.
Что такое Google Cast и Chromecast?
Google Cast – это технология которая позволяет передавать на телевизор изображение, видео, или музыку, со смартфона, планшета, или ноутбука. Все это без проводов. Все что нужно, это устройство с поддержкой Google Cast, с которого будем передавать контент, телевизор с Android TV, или любой другой телевизор с подключенным Chromecast адаптером, и домашняя Wi-Fi сеть, к которой должны быть подключены эти устройства.
Chromecast – это специальный адаптер, который подключается к телевизору в HDMI разъем, и позволяет использовать этот телевизор для воспроизведения видео, и другого контента с мобильных устройств, или компьютера (с браузера Chrome) . Его можно купить практически в любом магазине цифровой техники. Цена, как я уже писал выше, примерно 40-50 долларов.
Возможности Google Cast:
- Можно выводить видео с приложения YouTube на экран телевизора (этой возможностью я пользуюсь чаще всего) , и управлять воспроизведением.
- Смотреть фото с ваши мобильных устройств на экране телевизор.
- Воспроизводить музыку со смартфона, или планшета через динамики телевизора, или через специальные динамики, которые поддерживают функцию "Google Cast для аудио".
- Через приложение Chromecast можно выводить на телевизор все, что происходит на экране вашего Android, или iOS устройства. И даже, играть в игры (правда, есть небольшая задержка в выводе картинки на большой экран).
- А через браузер Chrome с расширением Google Cast можно транслировать на телевизор открытые в браузере вкладки.
Если у вас телевизор, который работает на системе Android TV, то поддержка Google Cast в нем уже встроена (как в моем случае с телевизором Philips 43PUS7150/12) . И это значит, что вам не нужно покупать дополнительный адаптер Chromecast. Можно просто подключать свои устрйоства и пользоваться всеми функциями этой технологии.
Как пользоваться Google Cast на телевизорах с Android TV?
На самом деле, все очень просто и понятно. У нас должен быть телевизор с Android TV, на который мы будем выводить изображение и звук. У нас должно быть устройство, с которого мы будем транслировать фото, видео, музыку. Подходят все смартфоны и планшеты на Android, версии 2.3 и выше. Устройства от Apple: iPhone, iPad и iPod Touch, которые работают на iOS версии 7.0 и выше. Ноутбук, или компьютер с установленным браузером Chrome.
Главное, что бы телевизор, и устройство с которого вы хотите транслировать контент были подключены к одной Wi-Fi сети. К одному Wi-Fi роутеру.
Я уже писал как подключить к Wi-Fi телевизор Philips. А ваши смартфоны, планшеты и ноутбуки, я думаю к Wi-Fi сети уже подключены.
На телевизоре настраивать вообще ничего не нужно. Он должен быть просто включен и подключен к вашей Wi-Fi сети. Управлять мы будем с нашего смартфона, планшета, или компьютера. Поехали!
Трансляция видео с YouTube на телевизор по Google Cast
Это та возможность, которой я пользуюсь практически каждый день. Я транслирую видео со своего iPad, на экран телевизора Philips. работает все очень просто. Берем наш смартфон, или планшет, который работает на Android, или iOS, и запускаем на нем приложение YouTube.
Включаем любой ролик, и сверху нажимаем на кнопку Google Cast. Появится ваш телевизор, выбираем его.
Воспроизведение видео начнется на телевизоре. Кнопка Google Cast станет синей. Если нажать на нее еще раз, то можно будет отключится от телевизора.
С Android смартфона все так же работает.
Когда идет воспроизведение ролика на телевизоре, вы видео на самом смартфоне, или планшете можете свернуть. Более, того, можно полностью свернуть приложение YouTube, при этом воспроизведение будет продолжатся. Можно регулировать громкость кнопками на мобильном устройстве. Не знаю как через адаптер Chromecast, но на телевизоре с Android TV, при регулировке громкости на устройстве, громкость регулировался на телевизоре (правда, там большой шаг) .
Еще одна интересная фишка, можно создавать список воспроизведения. Когда устройство подключено к телевизору, просто нажмите на любое видео, и появится окно с выбором: либо воспроизвести сейчас, либо добавить в очередь на воспроизведение. Очень удобно. Все просто и понятно, разобраться совсем не сложно.
Выводим на телевизор все, что происходит на экране смартфона, или планшета
Мы можем вывести на телевизор абсолютно все, что происходит на экране мобильного устройства. На телевизоре будет отображаться меню, программы, игры и т. д. Все, что мы видим на экране смартфона. Примерно так же работает технология Miracast.
Нам понадобится приложение, которое называется Chromecast. Установить его можно с Google Play, или с App Store (воспользуйтесь поиском) . После установки запускаем приложение, и запускам трансляцию экрана на наш телевизор.
Результат выглядит вот так:
А вот так выглядят программы с Android смартфона на телевизоре:
И даже игры можно выводить на телевизор по Google Cast.
Игры немного глючили. Изображение появлялось с задержкой. Возможно, если подключить более мощный смартфон, то все работало бы лучше. Но даже минимальная задержка все ровно будет.
На телефоне (Android) все работает как часы. А вот вывести экран с iPad у меня почему-то не получилось. Он просто не находил телевизор, и все время просил подключится к сети, в которой есть Chromecast устройство. Хотя, все было подключено, и трансляция видео в YouTube работала.
Транслируем изображение (вкладки) с браузера Chrome на телевизор
Еще одна возможность – трансляция вкладок с браузера Chrome. Телевизор и компьютер (ноутбук), должен быть подключен к одной Wi-Fi сети. Кстати, компьютер может работать как на Windows (от Windows 7 и выше) , так и на Mac OS X (от версии 10.7 и выше) , или Chrome OS.
Неактуально: Все что нужно, это установить браузер Google Chrome, и в браузере установить расширение "Google Cast". Для установки откройте настройки браузера, перейдите на вкладку Расширения, нажмите на ссылку "Еще расширения", в поиске введите "Google Cast" и установите расширение. В браузере появится кнопка, нажав на которую, можно запустить трансляцию вкладки на телевизор.
Обновление: как оказалось, расширения "Google Cast" больше нет. Функция трансляции теперь встроенная в браузер. Откройте меню и выберите "Трансляция. " Если такого пункта у вас нет, то обновите свой браузер Google Chrome.
На телевизоре сразу появится изображение с ноутбука. Все работает стабильно и быстро.
Вы можете прокручивать страницу, и переходить по ссылкам. Все это будет отображаться на экране телевизора. А если открыть в этой вкладке видео на сайте YouTube, то начнется трансляция не через вкладу, а через приложение на телевизоре (как с мобильных устройств) . Звук так же будет передаваться. Нажав на кнопку в браузере, можно прекратить трансляцию, поставить на паузу, или отключить звук.
Если вы часто пользуетесь этой функцией, то можно закрепить этот значок на панели браузера. Просто нажмите на него правой кнопкой мыши и выберите "Всегда показывать значок".
Теперь вы сможете запускать трансляцию из браузера на телевизор еще быстрее.
Заключение
Я рассказал вам об основных возможностях Google Cast, которыми пользуюсь сам. Можно так же воспроизводить музыку со смартфона, через динамики телевизора. Сделать это можно через приложение Google Play Музыка. Или транслировать фото с галереи. Просо нажимаем на кнопку "Google Cast" и выводим изображение на телевизор.
Если у вас телевизор на Android TV, или есть адаптер Chromecast, то обязательно воспользуйтесь всеми возможностями этой технологии. Напишите в комментариях, как вы используете Google Cast. Всего хорошего!
Chromecast это гаджет, который позволяет пользователям передавать медиа контент с мобильных устройств на телевизор.
Устройство стоимостью 35$ было анонсировано 24 Июля 2013 года и названо гаджетом года по версии Time's 2013. В первую очередь это технология передачи медиа контента с телефонов, планшетов или ноутбуков на устройство с большим экраном — например на телевизор.
Сразу после анонса Chromacast SDK был в стадии бета тестирования, что ограничивало его практическое применение. Но 3 февраля 2014 года Google выпустила финальную версию SDK.
Теперь количество приложений, поддерживающих Chromecast стремительно растет, так что мы решили описать наш опыт разработки Chromecast ready приложений для Android. Эта статья раскрывает тему разработки Chromecast ready приложения: ниже вы найдете некоторые заметки, комментарии и рекомендации для разработчиков также как и примеры и исходные коды нашего приложения.
Как это работает?
Chromecast устройство исполняет специальную версию броузера Chrome, который может отображать специальные Web приложения (называемые “Receiver” приложениями). Непосредственная цель этих приложений — это показ медиа контента конечным пользователям. Но Chromecast устройство не имеет никаких прямых рычагов управления, так-что очевидно должны существовать некоторые внешние элементы управления, и как было сказано ранее, это может быть или мобильное приложение, или Web приложение (которые называют “Sender” приложением).
Таким образом с помощью Sender приложений мы можем управлять Chromecast устройством. Но как именно это происходит?
Это можно сделать через общую WiFi сеть — т.е. и Sender и Receiver приложения должны быть подключены к единой WiFi сети. Этот канал двунаправленный, так что “Sender” приложение например может выдавать команды на проигрывание медиа контента, в то время как “Receiver” приложение будет оповещать “Sender” приложение о статусе проигрывания и позиции.
2. Разработка приложения
В общем, разработка приложений для Chromecast включает разработку Sender и Receiver приложений. Как было сказано ранее, Sender приложением может быть мобильное или Web приложение, хотя это и не ограничение. Receiver приложение — это специальное Web приложение, которое может быть запущено на Chromecast устройстве.
Но прежде чем мы начнем, нам нужно настроить Chromecast устройство и зарегистрировать наше приложение.
2.1. Настройка Chromecast устройства
Вам нужно зарегистрировать ваше приложение для того чтоб получить ID приложения (который будет использоваться и в “sender” и в “receiver” приложениях).
Процедура регистрации описана здесь.
2.3. Разработка “Sender” приложения
Сейчас мы обсудим процесс разработки “Sender” приложения. Хотя для того чтоб быть функциональным, “Sender” приложение требует работающего “Receiver” приложения. Так что мы сможем проверить результаты только после разработки “Receiver” приложения.
Также разработка “Sender” приложения для Android описана здесь.
В нашем случае, “Sender” приложение — это Android приложение которое использует набор технологий и библиотек для связи с “Receiver” приложением.
2.3.1. Пререквизиты:
- IDE для разработки Android приложений (например Eclipse) версии 15 или выше
- appcompat и media router libraries из пакета Android Support Library
2.3.2. Создание скелетона
Создайте пустое Android приложение и добавьте следующие библиотеки и зависимости:
- android-sdk\extras\android\support\v7\appcompat
- android-sdk\extras\android\support\v7\mediarouter
- android-sdk\extras\google\google_play_services\libproject\google-play-services_lib
Теперь создайте активити расширяющее ActionBarActivity.
2.3.3. Реализация
Есть несколько ключевых состояний в работе приложения:
1) Обнаружение устройства:
Обнаружение может быть запущено нажатием на кнопку “Cast”. Есть несколько способов показать эту кнопку, но мы будем использовать MediaRouter ActionBar провайдер.
Добавьте следующее в ваше меню:
Следующие поля вовлечены в процесс:
Инициализируйте mediaRouter и mediaRouteSelector в методе onCreate:
Сконфигурируйте action провайдер:
и зарегистрируйте callback в методах onStart и onStop:
APP_ID это строка с идентификатором приложения полученным при регистрации приложения в части 2.2
Теперь подключите Android устройства к общей с Chromecast устройством WiFi сети и запустите приложение (обратите внимание что receiver приложение должно уже быть доступным. Оно очень простое в нашем случае так что мы можем взять его из приведенное исходных кодов. Мы вернемся к этому позже).
Если все условия соблюдены, то иконка трансляции появится в верхнем правом угле. Нажатие на нее откроет со списком доступных устройств, позволяя тем самым подключится к одному из них. После подключения иконка станет голубой, оповещая что подключение установлено. Нажатие на нее еще раз откроет другой диалог, который позволит изменить громкость на Chromecast устройстве или отключится от него:
2) Управление сессией:
Для управления сессией мы добавим несколько полей и методов:
и несколько listeners:
В нашем случае NAMESPACE это строка «urn:x-cast:com.ls.cast.sample». Она используется для того чтоб отделить наш канал от других. Такая же конатснта должна быть использована в Receiver приложении.
2.4. Разработка “Receiver” приложения
“Receiver” приложение — это специальное Web приложение, способное работать в Chromecast устройстве.
Конечная цель приложения — показывать пользователю полезную информацию и позволить ему взаимодействовать с этой информацией через “Sender” приложение.
Первая задача отображения информации есть общая для Web приложений и может быть очень разной: это может быть медиа приложение типа YouTube или что-то наподобие медиа-плеера, или же это может быть некоторое тяжеловесное UI приложение наподобии Google Maps с дополнительными слоями, либо это может быть простая HTML страница, отображающая некоторую статистику.
2) размещение его на указанном URL;
Также обратите внимание, что опция “Send this Chromecast’s serial number when checking for updates” должна быть включенной чтоб позволить отладку. После открытия броузером найденного адреса вы увидите следующее:
Подсвеченный линк относится к исполняющемуся приложению.Если вы нажмете на нем, будет открыта новая страница с Chrome Developer tools. Не плутайте их с локальными инструментами разработчика — на самом деле они удаленные и относятся к вашему Chromecast устройству:
Теперь мы наконец готовы к разработке приложения.
Прежде всего включите скрипт поддержки Chromecast:
И еще несколько замечаний. Цвет текста по умолчанию черный, так что его нужно переопределить через CSS для того чтоб что-нибудь увидеть. Также обратите внимание что разрешение экрана в Chromecast устройстве 1280x720 пикселей.
Полный исходный код можно скачать здесь.
P.S. На самом деле я также являюсь и автором статьи, так что могу ответить на технические вопросы.
На улице я часто слушаю аудиокниги и подкасты со смартфона. Когда прихожу домой, мне хочется продолжить слушать их на Android TV или Google Home. Но далеко не все приложения поддерживают Chromecast. А было бы удобно.
По статистике Google за последние 3 года, количество девайсов на Android TV увеличилось в 4 раза, а число партнеров-производителей уже превысило сотню: «умные» телевизоры, колонки, TV-приставки. Все они поддерживают Chromecast. Но в маркете ещё много приложений, которым явно не хватает интеграции с ним.
В этой статье я хочу поделиться своим опытом интеграции Chromecast в Android-приложение для воспроизведения медиа-контента.
Если вы впервые слышите слово «Chromecast», то постараюсь вкратце рассказать. С точки зрения пользования, это выглядит примерно так:
- Пользователь слушает музыку или смотрит видео через приложение или веб-сайт.
- В локальной сети появляется Chromecast-девайс.
- В интерфейсе плеера должна появиться соответствующая кнопка.
- Нажав её, пользователь выбирает нужный девайс из списка. Это может быть Nexus Player, Android TV или «умная» колонка.
- Дальше воспроизведение продолжается именно с этого девайса.
Технически происходит примерно следующее:
- Google Services отслеживают наличие Chromecast девайсов в локальной сети посредством бродкастинга.
- Если к вашему приложению подключен MediaRouter, то вам придёт событие об этом.
- Когда пользователь выбирает Cast-девайс, и подключается к нему, открывается новая медиа-сессия (CastSession).
- Уже в созданную сессию мы будем передавать контент для воспроизведения.
Звучит очень просто.
У Google есть свой SDK для работы с Chromecast, но он плохо покрыт документацией, а его код обфусцирован. Поэтому многие вещи пришлось проверять методом тыка. Давайте обо всём по порядку.
Инициализация
Для начала нам надо подключить Cast Application Framework и MediaRouter:
Затем Cast Framework должен получить идентификатор приложения (об этом позже), и типы поддерживаемого медиаконтента. То есть если у нас приложение воспроизводит только видео, то кастинг на колонку Google Home будет невозможен, и в списке девайсов её не будет. Для этого нужно создать реализацию OptionsProvider:
И объявить его в Manifest:
Регистрируем приложение
Чтобы Chromecast мог работать с нашим приложением, его необходимо зарегистрировать в Google Cast SDK Developers Console. Для этого потребуется аккаунт Chromecast разработчика (не путать с аккаунтом разработчика Google Play). При регистрации придётся внести разовый взнос в 5$. После публикации ChromeCast Application нужно немного подождать.
В консоли можно изменить внешний вид Cast-плеера для девайсов с экраном и посмотреть аналитику кастинга в рамках приложения.
MediaRouter
MediaRouteFramework – это механизм, который позволяет находить все удалённые устройства воспроизведения вблизи пользователя. Это может быть не только Chromecast, но и удалённые дисплеи и колонки с использованием сторонних протоколов. Но нас интересует именно Chromecast.
В MediaRouteFramework есть View, которая отражает состояние медиароутера. Есть два способа её подключить:
А из кода требуется всего лишь зарегистрировать кнопку в CastButtonFactory. тогда в нее будет прокидываться текущее состояние медиароутера:
ChromeCast поддерживает три основных вида контента:
В зависимости от настроек плеера, типа медиаконтента и cast-девайса, интерфейс плеера может отличаться.
CastSession
Итак, пользователь выбрал нужный девайс, CastFramework открыл новую сессию. Теперь наша задача заключается в том, чтобы отреагировать на это и передать девайсу информацию для воспроизведения.
Чтобы узнать текущее состояние сессии и подписаться на обновление этого состояния, воспользуемся объектом SessionManager:
А ещё можем узнать, нет ли открытой сессии в данный момент:
У нас есть два основных условия, при которых мы можем начинать кастинг:
- Сессия уже открыта.
- Есть контент для кастинга.
При каждом из этих двух событий можем проверять состояние, и если всё в порядке, то начинать кастить.
Кастинг
Теперь, когда у нас есть что кастить и куда кастить, можем перейти к самому главному. Помимо всего прочего, у CastSession есть объект RemoteMediaClient, который отвечает за состояние воспроизведения медиаконтента. С ним и будем работать.
Создадим MediaMetadata, где будет храниться информация об авторе, альбоме и т. д. Очень похоже на то, что мы передаём в MediaSession, когда начинаем локальное воспроизведение.
Параметров у MediaMetadata много, и их лучше посмотреть в документации. Приятно удивило, что можно добавить изображение не через bitmap, а просто ссылкой внутри WebImage.
Объект MediaInfo несёт информацию о метаданных контента и будет говорить о том, откуда медиаконтент брать, какого он типа, как его проигрывать:
Напомню, что contentType – это тип контента по спецификации MIME.
Также в MediaInfo можно передать рекламные вставки:
- setAdBreakClips – принимает список рекламных роликов AdBreakClipInfo с указанием ссылок на контент, заголовка, тайминга и временем, через которое реклама становится пропускаемой.
- setAdBreaks – информация о разметке и тайминге рекламных вставок.
В MediaLoadOptions мы описываем то, как будем обрабатывать медиапоток (скорость, начальная позиция). Также документация говорит, что через setCredentials можно передать заголовок запроса для авторизации, но у меня запросы от Chromecast не включали в себя заявленные поля для авторизации.
После того как всё готово, мы можем отдать все данные в RemoteMediaClient, и Chromecast начнёт воспроизведение. Важно поставить локальное воспроизведение на паузу.
Обработка событий
Видео заиграло, а что дальше? Что если пользователь нажмёт паузу на телевизоре? Чтобы узнавать о событиях, происходящих со стороны Chromecast, у RemoteMediaClient есть обратные вызовы:
Узнать текущий прогресс тоже просто:
В приложении, над которым я работал, уже был готовый медиаплеер. Стояла задача интегрировать в него поддержку Chromecast. В основе медиаплеера лежал State Machine, и первой мыслью было добавить новое состояние: «CastingState». Но эта идея сразу была отвергнута, потому что каждое состояние плеера отражает состояние воспроизведения, и не важно, что служит реализацией ExoPlayer или ChromeCast.
Тогда пришла идея сделать некую систему делегатов с расстановкой приоритетов и обработкой «жизненного цикла» плеера. Все делегаты могут получать события о состоянии плеера: Play, Pause и т.д. — но только ведущий делегат будет воспроизводить медиаконтент.
У нас есть примерно такой интерфейс плеера:
Внутри у него будет лежать State Machine с таким множеством состояний:
- Empty — начальное состояние до инициализации.
- Preparing — плеер инициализирует воспроизведение медиаконтента.
- Prepared — медиаданные загружены и готовы к воспроизведению.
- Playing
- Paused
- WaitingForNetwork
- Error
Раньше каждое состояние при инициализации отдавало команду в ExoPlayer. Теперь оно будет отдавать команду в список Playing-делегатов, и «Ведущий» делегат сможет его обработать. Поскольку делегат реализует все функции плеера, то его тоже можно наследовать от интерфейса плеера и при необходимости использовать отдельно. Тогда абстрактный делегат будет выглядеть так:
Для примера я упростил интерфейсы. В реальности событий немного больше.
Делегатов может быть сколько угодно, как и источников воспроизведения. А делегат для Chromecast может выглядеть примерно так:
Прежде чем отдать команду о воспроизведении, нам надо определиться с ведущим делегатом. Для этого они добавляются в порядке приоритета в плеер, и каждый из них может отдавать состояние своей готовности в методе readyForLeading(). Полный код примера можно увидеть на GitHub.
После того как я интегрировал поддержку Chromecast в приложение, мне стало приятнее приходить домой и наслаждаться аудиокнигами не только через наушники, но и через Google Home. Что касается архитектуры, то реализация плееров в разных приложениях может различаться, поэтому не везде такой подход будет уместен. Но для нашей архитектуры это подошло. Надеюсь, эта статья была полезной, и в ближайшем будущем появится больше приложений, умеющих интегрироваться с цифровым окружением!
Одной из важных особенностей экосистемы Android всегда было большое разнообразие устройств. Android работает в смартфонах и планшетах, автомобилях и умных часах, домашней технике и телевизорах. На нынешнем I/O были анонсированы и новинки - умная колонка Home, платформа виртуальной реальности Daydream. Android все больше проникает во все сферы цифровой жизни, помогая управлять любыми устройствами.
Этой статьей мы начинаем цикл, в котором хотим рассказать о том, как использовать разные устройства экосистемы Android в своих приложениях: как транслировать видео на Chromecast, как создавать приложения для Android TV или как использовать мир "физического веба" в маячками Eddystone.
Самое главное - не забывайте про сам конкурс - Device Lab от Google . Вы сможете взять любые из этих устройств и начать разрабатывать свои приложения, тестируя функционал вживую.
В этой статье мы рассмотрим вопросы работы и создания приложений для медиа-устройств - Chromecast и Chromecast Audio. В рамках нашего проекта все они доступны для разработчиков - оставьте заявку и начните работу с ними прямо сейчас.
Chromecast Audio - миниатюрное устройство для трансляции аудио-потока на любое устройство с AUX входом, вышедшее в продажу в конце 2015 года. Идеальный подход Chromecast Audio как раз в том, что вы можете транслировать вашу любимую музыку практически на любое устройство с таким входом - ваш старый музыкальный центр получит интеграцию с Google Play Music благодаря подключению к Chromecast Audio и через него уже к вашему смартфону или планшету. Недорогой гаджет - ответ на все чаяния тех, кому не хочется обновлять свои аудиосистемы, но хочется сделать их умными и получить все возможности современных приложений у себя дома.
Поставляется Chromecast Audio в миниатюрной коробке, в комплекте у него блок питания с выходом microUSB (фактически вы можете подключить его к любому устройству с таким шнуром, не привязываясь к розетке), собственно сам Chromecast Audio и кабель-переходник. Подключение его к аудиосистеме очень простое - вы втыкаете кабель в Chromecast Audio, скачиваете приложение в Google Play для управления и все работает - на подключение к колонкам у меня ушло около 5 минут с обновлением прошивки (вы также можете подключить Chromecast Audio к своей Wi-Fi сети и устройство сможет работать в ней автономно).
После этого в приложениях, которые поддерживают трансляцию ( есть на официальном сайте Chromecast ), вы сможете выбрать нужное устройство. Каждое из них можно назвать по-своему и организовать передачи звука в разные комнаты своей квартиры или дома, таким образом зонировать и «перемещать» трансляции. Точно так же - управлять трансляциями голосом при помощи только что анонсированного на I/O Google Home: «Включи музыку в гостиной - Переключи в спальню - Выключи».
Посмотрим на примере Google Play Музыки, как в два шага открывается трансляция на Chromecast Audio:
Пожалуй, главная проблема Chromecast Audio в том, что трансляция не работает "по умолчанию" в любом приложении. Хотя их несколько десятков уже подключенных, все же, если вы Spotify, скажем, предпочитаете Zvooq, то завести его на Chromecast Audio у вас не получится - последнее приложение пока, к сожалению, не поддерживает такую трансляцию.
Но ведь затем мы здесь и собрались - чтобы расширить набор приложений, работающих с удобными устройствами.
Chromecast - старшее устройство, цифровой медиаплеер от Google, предназначенный уже для потокового воспроизведения видео контента (кстати, Сундар Пичаи в ходе открывающего I/O выступления отметил, что всего в мире продано уже более 25 миллионов устройств Chromecast). Chromecast работает на упрощенной версии Chrome OS. Для передачи медиа-контента Chromecast использует протокол DIAL, разработанный совместными усилиями компаний Netflix и YouTube. Главная его особенность в том, что, в отличие от других подобных технологий, устройство пользователя не участвует в обработке потока, оно фактически инициирует передачу, а дальше весь контент Chromecast (как в случае аудио, так и видео) берет с удаленного сервера сам. Таким образом телефон или планшет исключается из процесса обработки, не тратя свои ресурсов, не выжигая батарею и не нагружая сеть, он может заниматься другими задачами.
Большой Chromecast подключается уже не к аудиопорту, как Chromecast Audio, а к стандартному HDMI, то есть его можно "повесить" на телевизор, даже не подключенный к Сети, и передавать контент на него. Если Chromecast Audio это улучшение аудио систем, то Chromecast очевидно предназначен для видео-систем и создания из них современных мультимедийных центров, переноса новых приложений и трансляции веб-контента на экранах домашних телевизоров.
Настройка Chromecast происходит через то же самое приложение Google Cast - оно подключается к брелоку, и вы можете задать параметры доступа к Wi-Fi сети. После этого Chromecast сам скачает все обновления и вы сможете начать работу с ним.
Для этого вам снова понадобится приложение, которое умеет транслировать контент на Chromecast. Для примера возьмем YouTube для iOS, в нем появляется иконка, при нажатии на которую начинается трансляция:
При этом вы сможете продолжить работу с другими приложениями, так как трансляция идёт в фоновом режиме:
Вы также можете транслировать содержимое браузера на ТВ, для Chrome есть расширение Google Cast . Хотите изучать Хабр на большом экране? Да пожалуйста!
Есть также некоторые простые игры, вроде Angry Birds Go. Список весь вы можете найти тут . Для Android начиная с версии 4.4.2 доступна трансляция всего экрана устройства на Chromecast (зеркалирование), для этого в меню приложения есть специальный пункт.
Мне, правда, заставить эту функцию работать удалось лишь на мгновенье, но я отношу это к недостаткам моего тестового смартфона.
Кстати, в режиме простоя Chromecast транслирует на экран какие-то фантастически красивые фотографии природы, так что выключать его даже не хочется (вместо них на заставку можно поставить и свои собственные фотографии, все тоже через приложение).
Начало вашей интеграции - Google Cast SDK с библиотеками и примерами кода для Android, iOS или Chrome.
Компоненты, которые вам нужно создать:
В общем виде вам понадобится отправляющее поток приложение (sender application). Обычно это приложение на мобильном устройстве, в котором ведется трансляция.
Принимающее поток приложение (receiver application). Оно управляет коммуникациями между отправляющим приложением и сами устройством. В случае аудио вам принимающее приложение не нужно, в случае видео у вас есть несколько вариантов действия. Вы можете использовать:
Также настоятельно рекомендуем вам ознакомиться со списком проверки, который необходимо пройти каждому Cast-приложению. В нем перечислены все важные пункты, касающиеся дизайна и юзабилити приложений, транслирующих видео или аудио на устройства Chromecast.
Отправка
Рассмотрим обычную процедуру работы приложения с Cast-устройством:
Приём
Решений у вас, соответственно, всего два - стилизовать стандартный Media Receiver (вам понадобится собственный CSS-файл) или разработать собственный с нуля. Последнее может понадобиться, если вы хотите показывать нестандартный контент, который не поддерживает стандартный ресивер.
Как выбрать? Google разработал превосходную схему:
Бесплатный курс на Udacity "Разработка для Android TV и Google Cast":
Плагин для Unity:
Репозиторий Chromecast на GitHub:
Разработка игр для Google Cast:
Разработка для Chromecast, презентация Курта Мбанье, ведущего Android разработчика в DStv Online:
— Как у вас работает трансляция на Chromecast?
— Мы используем стандартную технологию трансляции видео для Chromecast, которая не так давно получила название Google Cast. Эта технология интересна тем, что непосредственно сам видео-контент не транслируется с мобильного устройства на Chromecast. Мобильное устройство передает только ссылку на поток, а загрузкой видео и декодированием занимается уже само Chromecast устройство. Причем, такой метод трансляции работает не только с Chromecast, но и с любым устройством, поддерживающим Google Cast технологию. На текущий момент это все устройства на базе Android TV - STB-приставки, например Nexus Player или NVidia Shield и Smart TV телевизоры от Sony и Philips.
Такой подход позволяет освободить вычислительные мощности мобильного устройства, оно не будет перегреваться и разряжать аккумулятор. Трансляция будет продолжаться даже при выключенном телефоне. Более того, можно продолжить управлять этой трансляцией с любого другого Android или iOS-устройства или из настольного браузера Chrome.
Другие технологии, такие, как Miracast или WiDi, используют «зеркалирование» экрана, т.е. на устройстве в реальном времени происходит захват видеопотока с экрана устройства, кодирование видео и трансляция по Wi-Fi на приемные устройства. По нашему опыту, такие технологии требовательны к ресурсам мобильных устройств и нагружают локальную Wi-Fi сеть. Для «зеркалирования» онлайн-трансляций поток сначала скачивается на мобильное устройство, там декодируется и выводится на экран, затем снова кодируется и передается на приемник по той же Wi-Fi сети, на приемнике видеопоток снова декодируется и выводится на экран. Недостатки такого подхода особенно явно проявляются при трансляции тяжелого HD-контента.
Строго говоря, Google Cast приемники также поддерживают «зеркалирование». Но необходимо учитывать, что этот режим долгое время был в состоянии бета версии, Google не советует использовать его для видеовещания, и работа в таком режиме возможна не со всех мобильных устройств.
«Зеркалирование» может использоваться для вещания игр или для приложений, не поддерживающих основной режим работы Google Cast, однако, в этом случае могут возникать задержки (latency), вызывающие дискомфорт в динамичных играх.
Во всех остальных случаях мы советуем использовать трансляцию Google Cast, а разработчикам советуем адаптировать приложения для полноценной поддержки этой технологии.
— Вызвала ли какие-нибудь проблемы интеграция?
— Для реализации минимальной функциональности никаких проблем не возникает. По этой технологии Google подготовил очень подробную документацию, доступно много рабочих примеров и библиотек. Некоторые сложности проявляются, когда мобильные программисты понимают, что приложение-приемник пишется на JavaScript. Но для простых задач можно использовать готовый приемник от Google, тогда необходимость программировать на JS и поддерживать свое Web-приложение полностью отпадает.
Также могут возникнуть сложности, когда стоит задача реализовать полную функциональность по всем Guidelines от Google. В таких случаях приходится учитывать большой объем различных факторов, особенно по UI. Нужно интегрировать Сast компонент в лайауты всех экранов, обеспечить работу на экране блокировки и в области нотификации, необходимо вовремя получать события от приемника, грамотно их обрабатывать и обновлять UI.
Однако пока подобные библиотеки не охватывают все возможные случаи, и во многом требуют доработки.
Читайте также: