- Приложения для передачи потокового видео с Android-устройства на Chromecast
- AllCast ($4.99, бесплатный пробный период)
- Avia ($2.99)
- Juice for Chromecast ($2.99, в бесплатной версии функции ограничены)
- LocalCast (бесплатное приложение)
- Plex ($4.99)
- RealPlayer Cloud (бесплатное приложение)
- Андроид видеоплеер с хромкаст
- Андроид видеоплеер с хромкаст
- Андроид видеоплеер с хромкаст
- Смотрю и слушаю где хочу. Интегрируем Chromecast в Android-приложение
- Как это работает
- Интеграция
- Инициализация
- Регистрируем приложение
- MediaRouter
- Кастинг медиаконтента
- CastSession
- Кастинг
- Обработка событий
- Опыт интеграции с существующим плеером
- Есть ли жизнь после ChromeCast
Приложения для передачи потокового видео с Android-устройства на Chromecast
Медиаплеер Google Chromecast подключается к телевизору и позволяет смотреть видео и слушать музыку с разных интернет-ресурсов – Netflix, YouTube, Pandora, Google Play Music. А что, если хочется посмотреть отснятое на телефоне видео на телевизоре, не выкладывая его на сайт?
Когда Chromecast был только что анонсирован, организовать подобное было невозможно. Но после того как компания Google выпустила Google Cast SDK, появилось большое количество софта, способного передавать медиафайлы с мобильного устройства на телевизор. Необходимо лишь иметь в виду, что при отключении смартфона или планшета воспроизведение файла прекратится.
В данной статье рассматриваются шесть из тех первых приложений, которые предназначены для работы в связке “Android-устройство + ТВ с подключенным к нему адаптером Chromecast”.
AllCast ($4.99, бесплатный пробный период)
Это приложение не только передает локальные медиафайлы на Chromecast. Оно также может использоваться вместе с Roku, Apple TV, Xbox 360, Xbox One, WDTV, а также Samsung, Sony и Panasonic Smart TV и другими устройствами, поддерживающими стандарт DLNA.
И ничего сложного, нужно просто запустить AllCast, открыть папку с медиа-коллекцией, выбрать файл и послать его на телевизор. Для управлением воспроизведением имеются сенсорные кнопки.
Бесплатно посмотреть можно только первые 60 секунд видео. Чтобы снять это ограничение нужно заплатить $5, именно столько стоит версия AllCast Premium.
Разработчиком AllCast является Кушик Дутта (Koushik Dutta). Он один из первых начал создавать Android-приложения для работы с Chromecast. Выход AllCast состоялся еще до финального релиза Google SDK. Теперь приложение поддерживает не только Chromecast, но и другие подобные гаджеты.
Avia ($2.99)
Как и AllCast, Avia может передавать потоковое видео музыку и фотографии. Кроме того, оно имеет поддержку плейлистов и может использоваться в качестве отдельного медиаплеера для Android. Для передачи контента на ТВ достаточно лишь нажать кнопку Chromecast.
Медиаплеер Avia доступен бесплатно. Но если нужен Chromecast, то нужно будет заплатить $2.99 за “Avia Extras”.
Juice for Chromecast ($2.99, в бесплатной версии функции ограничены)
Приложение Juice умеет передавать потоковые медиафайлы, а также сортировать их по дате создания или добавления в библиотеку. Бесплатная версия Juice на первый взгляд вполне работоспособна, но это не совсем так. На Chromecast можно отправить только первый файл медиа-коллекции. Для того чтобы полностью разблокировать эту функцию, нужно заплатить $2.99 (встроенная покупка).
LocalCast (бесплатное приложение)
На данный момент самое привлекательное в LocalCast – это его бесплатность. Однако не все файловые форматы этому приложению «по зубам». Некоторые видео LocalCast может не увидеть.
Разработчик обещает расширить список поддерживаемых форматов. Узнать более подробную информацию о LocalCast можно на форуме xda-developers.
Plex ($4.99)
Plex – это кроссплатформенный медиаплеер, который может работать, как с локальным, так и с интернет-контентом. Кроме того Plex позволяет передавать потоковые видео и музыку с устройства на устройство. Поддержка Chromecast была добавлена совсем недавно.
Хотя за Plex нужно заплатить $4.99, без оформления подписки PlexPass доступа к функции Chromecast не будет. Подписка – это временная мера, так как данная опция до сих пор находится в стадии разработки. Как только работа завершится, опция Chromecast станет доступна всем пользователям.
RealPlayer Cloud (бесплатное приложение)
Подписаться на RealPlayer Cloud можно бесплатно, пользователь получит 2 Гб на облачное хранение и сможет загружать “в облако” фотографии, видео и другой контент. После этого можно не только иметь доступ к файлам с любого Android-устройства, но и отправлять эти файлы на Chromecast.
Если “облачная” часть приложения не нужна, ею можно не пользоваться. Для просмотра контента, хранящегося на Android-устройстве, нужно запустить RealPlayer и нажать сначала кнопку Chromecast, а затем “Play”. Chromecast “подцепит” видео через сеть Wi-Fi и никакой загрузки в облако не потребуется.
RealPlayer – это один из самых первых плееров, созданных для потокового воспроизведения видео и музыки. Сегодня подобная функциональность пользуется огромным спросом. На данный момент RealPlayer Cloud можно назвать самым универсальным приложением для владельцев Chromecast.
Итак, для того чтобы смотреть видео с интернет-ресурсов, таких как Netflix, Hulu Plus, YouTube, HBO Go или Google Play Movies, нужно будет выполнить пару простых действий – запустить одно из описанных выше приложений и нажать кнопку Chromecast. Chromecast в данном случае будет выступать в качестве устройства для передачи потокового видео из интернета на телевизионный приемник.
Источник
Андроид видеоплеер с хромкаст
Краткое описание:
Просмотр Web и трансляция видео на Chromecast
Описание:
FX Player — это видео плеер, который Вы ищете.
Он обладает интерфейсом, оптимизированным для мобильных устройств, который предлагает идеальное качество воспроизведения и в локальной, и в потоковой среде.
В добавок, видео из него вместе с субтитрами может быть отправлено на телевизор посредством Chromecast.
Я могу заверить вас в том, что FX Player — это идеальный видео плеер, о котором вы все мечтали.
■ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ
□ Весь Формат Видео, MKV, MP4, M4V, AVI, ASF, MOV, 3GP, FLV, MPG, MOV, OGV, H.264, MPEG4, DIVX, XVID, WMV, RM, TS и т.д.
□ Весь Формат Аудио, MP3, MIDI, APE, WAV, FLAC, AC3, AAC, APE, WMA, ACC PLUS и внешний кодек и т.д.
□ Весь Формат Субтитры, SMI(SAMI), SRT, SSA, ASS, VTT, IDX, SUB, MKV(Embedded) и т.д.
□ HD, Full HD, 1080p, 4K, dvd, blu-ray ripping video и т.д.
□ Транслируйте видео на ТВ с помощью Chromecast((поддерживаются субтитры, srt, smi. vtt и т. д.).
□ Встроенный сетевой клиент, FTP, SMB, CIFS, HTTP or WebDAV Usw.
□ Быстрая перемотка вперед и назад назад с помощью жестов двойного касания
□ Управление и редактирование видеофайлов, к примеру, как переименование, удаление, перемещение
□ Легкое управление яркостью и громкостью, воспроизведением, изменением размера, скоростью
□ Случайное воспроизведение, Повтор, Фоновый режим, Зеркальный режим — переворот видео для изучения танцев, воспроизведение видео с последнего местоположения
□ Быстрое сканирование всех видеофайлов на вашем устройстве и SD-карте автоматически
□ Плавающий экран, Просмотр видео во время просмотра веб-страниц
□ Сохраняйте и перемещайте видео с помощью личной папки
□ Hardwarebeschleunigung
□ Mehrsprachige Audiounterstützung
[ Вопросы и предложенияя ]
□ FX плеер с самого начала создавался по нашим собственным разработкам и технологиям, поэтому мы можем быстро реализовать любые функции, какие вы пожелаете. Пожалуйста, оставьте свой отзыв на форуме FIPE в удобное время.
□ FIPE Forum : http://www.fipe.tv/forum
Требуется Android: Android 6.0 и выше
Русский интерфейс: Да
Источник
Андроид видеоплеер с хромкаст
Краткое описание:
Просмотр Web и трансляция видео на Chromecast
Описание:
FX Player — это видео плеер, который Вы ищете.
Он обладает интерфейсом, оптимизированным для мобильных устройств, который предлагает идеальное качество воспроизведения и в локальной, и в потоковой среде.
В добавок, видео из него вместе с субтитрами может быть отправлено на телевизор посредством Chromecast.
Я могу заверить вас в том, что FX Player — это идеальный видео плеер, о котором вы все мечтали.
■ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ
□ Весь Формат Видео, MKV, MP4, M4V, AVI, ASF, MOV, 3GP, FLV, MPG, MOV, OGV, H.264, MPEG4, DIVX, XVID, WMV, RM, TS и т.д.
□ Весь Формат Аудио, MP3, MIDI, APE, WAV, FLAC, AC3, AAC, APE, WMA, ACC PLUS и внешний кодек и т.д.
□ Весь Формат Субтитры, SMI(SAMI), SRT, SSA, ASS, VTT, IDX, SUB, MKV(Embedded) и т.д.
□ HD, Full HD, 1080p, 4K, dvd, blu-ray ripping video и т.д.
□ Транслируйте видео на ТВ с помощью Chromecast((поддерживаются субтитры, srt, smi. vtt и т. д.).
□ Встроенный сетевой клиент, FTP, SMB, CIFS, HTTP or WebDAV Usw.
□ Быстрая перемотка вперед и назад назад с помощью жестов двойного касания
□ Управление и редактирование видеофайлов, к примеру, как переименование, удаление, перемещение
□ Легкое управление яркостью и громкостью, воспроизведением, изменением размера, скоростью
□ Случайное воспроизведение, Повтор, Фоновый режим, Зеркальный режим — переворот видео для изучения танцев, воспроизведение видео с последнего местоположения
□ Быстрое сканирование всех видеофайлов на вашем устройстве и SD-карте автоматически
□ Плавающий экран, Просмотр видео во время просмотра веб-страниц
□ Сохраняйте и перемещайте видео с помощью личной папки
□ Hardwarebeschleunigung
□ Mehrsprachige Audiounterstützung
[ Вопросы и предложенияя ]
□ FX плеер с самого начала создавался по нашим собственным разработкам и технологиям, поэтому мы можем быстро реализовать любые функции, какие вы пожелаете. Пожалуйста, оставьте свой отзыв на форуме FIPE в удобное время.
□ FIPE Forum : http://www.fipe.tv/forum
Требуется Android: Android 6.0 и выше
Русский интерфейс: Да
Источник
Андроид видеоплеер с хромкаст
Краткое описание:
Просмотр Web и трансляция видео на Chromecast
Описание:
FX Player — это видео плеер, который Вы ищете.
Он обладает интерфейсом, оптимизированным для мобильных устройств, который предлагает идеальное качество воспроизведения и в локальной, и в потоковой среде.
В добавок, видео из него вместе с субтитрами может быть отправлено на телевизор посредством Chromecast.
Я могу заверить вас в том, что FX Player — это идеальный видео плеер, о котором вы все мечтали.
■ ОСНОВНЫЕ ХАРАКТЕРИСТИКИ
□ Весь Формат Видео, MKV, MP4, M4V, AVI, ASF, MOV, 3GP, FLV, MPG, MOV, OGV, H.264, MPEG4, DIVX, XVID, WMV, RM, TS и т.д.
□ Весь Формат Аудио, MP3, MIDI, APE, WAV, FLAC, AC3, AAC, APE, WMA, ACC PLUS и внешний кодек и т.д.
□ Весь Формат Субтитры, SMI(SAMI), SRT, SSA, ASS, VTT, IDX, SUB, MKV(Embedded) и т.д.
□ HD, Full HD, 1080p, 4K, dvd, blu-ray ripping video и т.д.
□ Транслируйте видео на ТВ с помощью Chromecast((поддерживаются субтитры, srt, smi. vtt и т. д.).
□ Встроенный сетевой клиент, FTP, SMB, CIFS, HTTP or WebDAV Usw.
□ Быстрая перемотка вперед и назад назад с помощью жестов двойного касания
□ Управление и редактирование видеофайлов, к примеру, как переименование, удаление, перемещение
□ Легкое управление яркостью и громкостью, воспроизведением, изменением размера, скоростью
□ Случайное воспроизведение, Повтор, Фоновый режим, Зеркальный режим — переворот видео для изучения танцев, воспроизведение видео с последнего местоположения
□ Быстрое сканирование всех видеофайлов на вашем устройстве и SD-карте автоматически
□ Плавающий экран, Просмотр видео во время просмотра веб-страниц
□ Сохраняйте и перемещайте видео с помощью личной папки
□ Hardwarebeschleunigung
□ Mehrsprachige Audiounterstützung
[ Вопросы и предложенияя ]
□ FX плеер с самого начала создавался по нашим собственным разработкам и технологиям, поэтому мы можем быстро реализовать любые функции, какие вы пожелаете. Пожалуйста, оставьте свой отзыв на форуме FIPE в удобное время.
□ FIPE Forum : http://www.fipe.tv/forum
Требуется Android: Android 6.0 и выше
Русский интерфейс: Да
Источник
Смотрю и слушаю где хочу. Интегрируем 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. Что касается архитектуры, то реализация плееров в разных приложениях может различаться, поэтому не везде такой подход будет уместен. Но для нашей архитектуры это подошло. Надеюсь, эта статья была полезной, и в ближайшем будущем появится больше приложений, умеющих интегрироваться с цифровым окружением!
Источник