- Обзор Chromecast 2020 с Google TV на борту
- Зачем нужен Chromecast при наличии современного телевизора
- Что в наборе
- Ощущения
- Спецификации
- Подключение
- Пульт управления
- Смотрю и слушаю где хочу. Интегрируем Chromecast в Android-приложение
- Как это работает
- Интеграция
- Инициализация
- Регистрируем приложение
- MediaRouter
- Кастинг медиаконтента
- CastSession
- Кастинг
- Обработка событий
- Опыт интеграции с существующим плеером
- Есть ли жизнь после ChromeCast
- Обзор нового Chromecast на Google TV: чем он лучше старых и какова замена Android TV
- Дизайн, пульт ДУ и комплектация
- Программное обеспечение и производительность
- Отзыв: стоит ли покупать?
Обзор Chromecast 2020 с Google TV на борту
Я пользуюсь Chromecast с самой первой версии. В первый раз я купил это устройство, потому что телевизор не поддерживал ничего, кроме Miracast. А для меня это очень неудобно. Затем был Chromecast Ultra — по той же причине, плюс привычка
Сейчас (в 2021 году) с появлением консолей пятого поколения, которых у меня до сих пор нет, я занялся обновлением техники в доме. Я купил новый телевизор с поддержкой HDMI 2.1, Airplay, 120 Hz, 4K и прочими современными ништяками. И при этом я купил Chromecast 2020 с Google TV.
Зачем нужен Chromecast при наличии современного телевизора
Если у вас телевизор на Android (Google TV), то новый и любой старый Chromecast вам не нужен на 100%.
Если у вас телевизор не на Android, а хочется Android, то это тот самый вариант. Новый Chromecast на борту имеет полноценный Google TV со всеми его плюсами и минусами. Поэтому если вам не нравятся дефолтные приложения ОС вашего телевизора или почему-то вам не нравится использовать встроенные средства стриминга, то вот ваше решение.
Что в наборе
Набор нового Chromecast, как обычно, минималистичный. В коробке будет инструкция, сам гаджет, провод питания и адаптер. Для версии 2020 дополнительно положили пульт ДУ и две батарейки AAA.
Ощущения
Описывать Chromecast, как это делают с современными гаджетами, будет глупо. Ведь устройство будет висеть за телевизором, и вообще наплевать, как оно там выглядит и ощущается в руке. Хотя купить можно белую, закатную и небесную расцветки.
При этом Chromecast стал немного компактнее в плане высоты. Длина составляет 162 мм, ширина 61 мм, а высота 12,5 мм. На скриншоте ниже показаны размеры предыдущей версии Chromecast Ultra.
Спецификации
Chromecast версии 2020 поддерживает все современные стандарты видео: 4K HDR, 60 FPS, Dolby Vision, HDR10, HDR10+.
Для работы у вас должен быть обычный Wi-Fi 802.11ac (2.4 GHz / 5 GHz) и HDMI-вход.
Подключение
Если вы уже пользовались Chromecast, то процесс подключения для вас будет привычным. Подключаете устройство в HDMI-порт телевизора, USB-провод в USB-порт для питания. Входите в домашнюю Wi-Fi сеть, пара простых шагов, и готово.
В моём случае всё получилось немного сложнее. Chromecast Ultra для работы вполне хватало мощности USB-порта. Новый же Chromecast пришлось воткнуть в самую настоящую розетку. Повезло, что за телевизором была лишняя.
Также стандартный онбординг у меня ни в какую не хотел работать. Во время авторизации в Google-аккаунте просто был белый экран и ничего. Разработчики учли этот сценарий, и настроить устройство можно вообще без Google Home и смартфона под рукой. Для этого нужно пойти по альтернативной ветке развития и пройти все шаги на самом Chromecast.
После этого устройство работает без каких-либо проблем и доступно в Google Home.
Пульт управления
Новым Chromecast можно управлять пультом из набора и пультом от телевизора. Причём это работает в обе стороны до тех пор, пока вам не нужно будет переключиться на другое устройство.
По итогу в моём случае пульт от Chromecast пылится на столе, и зачем он вообще нужен, кроме первоначальной настройки, мне непонятно.
Но за эти короткие минуты знакомства я понял, что пульт лёгкий и приятно ощущается в руке. Управлять им удобно до тех пор, пока не придётся вводить текст. Колёсико ввода какое-то очень маленькое, и часто вместо команды Enter у меня срабатывала команда Back.
И на самом деле тут больше нечего рассказать. Сам Chromecast, как я и говорил, висит за телевизором и работает без каких-либо нареканий. А если вы хотите узнать, как оно вообще по жизни, то в этом вам поможет любой обзор Google TV. И ставить сторонние приложения можно.
Источник
Смотрю и слушаю где хочу. Интегрируем Chromecast в Android-приложение
На улице я часто слушаю аудиокниги и подкасты со смартфона. Когда прихожу домой, мне хочется продолжить слушать их на 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. тогда в нее будет прокидываться текущее состояние медиароутера:
Теперь, когда приложение зарегистрировано, и MediaRouter настроен, можно подключаться к ChromeCast-девайсам и открывать сессии к ним.
Кастинг медиаконтента
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
После того как я интегрировал поддержку Chromecast в приложение, мне стало приятнее приходить домой и наслаждаться аудиокнигами не только через наушники, но и через Google Home. Что касается архитектуры, то реализация плееров в разных приложениях может различаться, поэтому не везде такой подход будет уместен. Но для нашей архитектуры это подошло. Надеюсь, эта статья была полезной, и в ближайшем будущем появится больше приложений, умеющих интегрироваться с цифровым окружением!
Источник
Обзор нового Chromecast на Google TV: чем он лучше старых и какова замена Android TV
Анонс нового Chromecast показал, что время циклично: новый стриминговый донгл работает под управлением Google TV. Нет, это не новая платформа, основанная на Android TV. И это не тот самый Android TV. Ситуация с этой сменой названия действительно сбивает с толку. Но вот в чём действительно нельзя запутаться, так это в том, что Chromecast with Google TV (именно так официально называется новая модель) стала, по сути, улучшенной версией Chromecast Ultra. Новинка транслирует 4К-видео, имеет комплектный пульт дистанционного управления и получила несколько интересных функций из Google TV. Конечно, новая платформа неидеальна, но за 50 долларов (такая официальная цена на новинку в США) жаловаться трудно.
Характеристики
- Хранилище: 8 ГБ.
- Видео: до 4K при 60 FPS, Dolby Vision, HDR10, HDR10+.
- HDMI: 2.1.
- Аудио: DTS, Dolby Digital+, Dolby Audio, Dolby Atmos.
- Wi-Fi: 802.11ac (2,4 / 5 ГГц).
- Bluetooth: есть.
- Программное обеспечение: Google TV (Android 10).
- Габариты и вес донгла: 162×61×12,5 мм, 55 грамм.
- Габариты и вес пульта ДУ: 122×38×18 мм, 63 грамма.
- Сенсоры и датчики пульта: акселерометр, ИК-порт, микрофон.
Дизайн, пульт ДУ и комплектация
Новый Chromecast напоминает большинство последних гаджетов от Google. Это скруглённый «кирпич», который поставляется в нескольких расцветках, и, как у предшествующих моделей, посередине его корпуса расположен утончённый логотип «G». Короткий кабель с HDMI протягивается с одного конца, а на другой стороне расположен порт питания. Приятно видеть, что Google в этот раз перешёл на USB-C, и не потому, что кабель microUSB в старом Chromecast особо раздражал. Как часто вам действительно нужно отключать этот стриминговый донгл? Я просто уверен, что в 2020 году USB-C подходит лучше. Больше о дизайне сказать нечего — гаджет будет болтаться позади телевизора, и, если всё пойдёт по плану, вы редко будете смотреть на него (если вообще хоть когда-нибудь будете).
В этот раз Google добавил в комплектацию пульт дистанционного управления, и мне этого хватило бы для счастья, даже если это было бы единственным нововведением. Он примерно такого же размера и такой же формы, как пульты Roku. В верхней части расположен D-Pad (кнопка-крестовина, в этом случае «круговина») с кнопкой «Выбрать» / «Плэй» / «Пауза». Ниже размещены кнопки «Назад», «Google Ассистент», «Домой», «Без звука», YouTube и Netflix. Отдельные кнопки для вызова сервисов кажутся чем-то лишним на фоне минималистичного дизайна пульта. В нижней части расположились две отдельные кнопки: для управления питанием телевизора и для входа в режим ТВ-приставки. На боковой грани размещена качелька для регулирования громкости.
Когда вы нажимаете и удерживаете кнопку «Google Ассистента», встроенный в пульт микрофон активируется — об этом свидетельствует светодиод в нижней части пульта. Вы можете надиктовывать команды, специфичные для Google TV, — например, о желании посмотреть фильм или телепередачу. Голосовой помощник также взаимодействует с другими поддерживающими «Google Ассистента» гаджетами в доме: с умными камерами, лампочками и прочим. По крайней мере, обычно вы можете воспользоваться им для этих целей — на данный момент «Ассистент» на Chromecast слишком придирчив к фразам.
В комплекте с самим Chromecast вы получаете пульт дистанционного управления и кабель питания USB-C (гаджет не может питаться через HDMI — его нужно подключать к источнику питания). Также в коробке лежат две ААА-батарейки для пульта.
Программное обеспечение и производительность
В новом Chromecast есть два «режима». Вы можете использовать по принципу старых моделей, то есть исключительно для передачи видео с любого совместимого приложения на вашем смартфоне, а также подключать к приложению Google Home для настройки параметров и аудиогрупп. Но другой режим погружает в новое программное обеспечение в лице Google TV — только не стоит слово «новое» интерпретировать неправильно. Это всё ещё Android, который работает на вашем телевизоре, и Google TV разделяет с Android TV множество элементов. Новая платформа достаточно хорошо работает с гаджетом: у неё не падают кадры и не происходят подлагивания (в большинстве случаев), но иногда на запуск приложения или на отображение информации о контенте уходит больше времени, чем ожидаешь. Я играл в несколько простых игр, и они работали хорошо. Но на геймерскую приставку не рассчитывайте: на устройстве не хватает места для установки чего-либо требовательного (накопитель всего на 8 ГБ).
Интерфейс Google TV все ещё содержит большие плитки, как в Android TV, но в новой платформе больше внимания уделяется контенту, а не приложениям, содержащим его. Новый главный экран называется «Для вас» и объединяет потоковое видео со всех установленных приложений. Идея заключается в том, чтобы показать вам все фильмы и сериалы, которые вы можете посмотреть в текущий момент без платы за них (хотя я заметил несколько видео, которые не были доступны для меня бесплатно — скорее всего, это баг первых версий прошивки). Система отображает рекомендации, основанные на трендах, а также различные жанры, которые можно прокручивать. Как мне кажется, Google TV лучше отображает видео, которые я могу захотеть посмотреть, чем это делает Android TV, и мне нравится, что платформа идентифицирует контент, за который я уже заплатил в рамках подписки на тот или ной сервис. Разработчики также добавили опцию составления списка просмотра, чтобы вы могли добавить в него всё, что хотите посмотреть в будущем.
В Google TV также есть ТВ-интеграция — в нём есть специальная вкладка для прямого эфира, а некоторые программы появляются прямо во вкладке «Для вас». На старте эта опция работает только с YouTube TV (в России недоступен) — если у вас нет подписки, вкладка прямого эфира вообще не будет отображаться. По заявлениям Google, в будущем система будет работать с большим число сервисов. Тем не менее вы все ещё можете запускать такие приложения, как Hulu, чтобы посмотреть прямые трансляции.
Интерфейс очень похож на таковой в приложении YouTube TV (которое можно запустить и использовать отдельно, если хотите), но он позволяет выполнять стандартные задачи быстрее: запись контента, просмотр уже сделанных записей, перелистывание каналов — всё это доступно без открытия приложения YouTube TV. Однако нужно убедиться, что в YTTV и в Chromecast выполнен вход в одну и ту же учётную запись — в противном случае, интеграция с главным экраном работать не будет.
Процесс настройки пульта дистанционного управления весьма быстрый. После того, как вас попросят установить параметры аудио и телевизора, Chromecast запрограммирует ИК-датчик пульта для дистанционного управления всем. Не думаю, что после этого мне понадобится прикасаться к отдельным ДУ-пультам от телевизора и от саундбара, потому что в 90% случаев я только включаю/выключаю эти устройства или изменяю громкость — и то, и другое я могу делать с помощью пульта от Chromecast. Также стоит отметить, что у пульта нет задержек — любой, кто пользовался NVIDIA Shield, знает о раздражающей особенности его пульта, который «просыпается» несколько секунд после режима ожидания.
Отзыв: стоит ли покупать?
Да. Даже если бы это был просто донгл за 50 долларов с поддержкой 4К, потому что Chromecast Ultra продавался за 70 долларов. Но стриминг высокого разрешения — это не всё, что вы получите. У новинки есть пульт. Наконец-то! Он хорош в управлении Google TV, а эта платформа тоже нова для Chromecast. Я не восхищён ребрендингом Android TV, но он в любом случае состоится.
Вам стоит купить Chromecast на Google TV, если:
- нужно новое устройство для 4К-стриминга;
- не планируете играть в игры на телевизоре.
Google TV — всё ещё Android, и новая платформа действительно похожа на Android TV. Тем не менее Google рассматривает её как совершенно отдельный продукт, который значимее Android TV, и новая платформа станет доступна большому числу устройств в 2021 году. Новому расположению элементов и рекомендациям отведено центрально место, и это, в основном, оказалось успешным. Экран «Для вас» предлагает много интересного контента (я подключился к 4 стриминговым сервисам), и хорошо, что он отображает только те фильмы, которые можно посмотреть бесплатно с учётом действующих подписок (в большинстве случаев). Интеграция с прямыми эфирами работает, но хотелось бы, чтобы поддерживались больше сервисов.
Вам не следует покупать Chromecast на Google TV, если:
- хотите играть в игры для Android или Stadia на вашем телевизоре;
- не нужен пульт дистанционного управления и нет 4К-телевизора.
Если вы раздумываете о покупке Chromecast в качестве устройства для стриминга, то ответ на вопрос, стоит ли покупать новую модель, очевиден. В Google TV есть некоторые раздражители, но стоит думать об этой платформе как о бонусе — вам не придётся использовать её, если не захотите. Новый Chromecast все ещё представляет из себя полнофункциональный донгл для стриминга, только теперь с ДУ-пультом, и это прекрасно.
Плюсы
- Цена: всего 50 долларов (в США) — очевидное решение, если у вас 4К-телевизор.
- Аудио и видео: этот донгл поддерживает всё, в том числе многочисленные стандарты HDR и высококачественное аудио.
- Пульт ДУ: прост в настройке, отзывчив и хорошо продуман.
- Google TV: обновлённый интерфейс отображения контента, поддержка всех оптимизированных под телевизоры приложений. И это в дополнение к стандартному функционалу стримингового донгла.
Минусы
- Тоже Google TV: некоторые баги первых сборок, нет поддержки нескольких пользователей. Редизайн и ребрендинг Android TV, вероятно, добавит лишнюю путаницу потребителям.
- Хранилище: всего 8 ГБ жёстко ограничивают то, что вы можете установить.
- Прямые эфиры: работают только с YouTube TV (недоступен в России), который стоит весьма не мало.
- Stadia: несмотря на то, что игровой стриминговый сервис почти готов для Android TV, он получит поддержку Google TV не раньше начала 2021 года.
Источник