Создайте собственное устройство Chromecast

Устройство Chromecast - это "устройство-приемник [], в котором запущен уменьшенный браузер Chrome с приложением-получателем". Можно ли загрузить и установить это приложение-получатель в браузере Chrome, например, на моем ноутбуке Windows?

Ответ 1

Устройство хромирования работает с использованием протокола DIAL. Полностью можно эмулировать этот протокол, используя некоторый простой код для прослушивания в многоадресной группе для обнаружения, а затем обрабатывать HTTP-запросы для запуска приложений. Именно тогда запущенное приложение взаимодействует с литейным устройством, я полагаю, используя протокол RAMP.

К счастью для приложений, которые использует устройство хромирования, в основном используются веб-приложения, что означает, что нашему эмулятору устройства просто нужно запустить веб-браузер и указать его на определенный URL-адрес, когда он получит запрос приложения.

Например, приложение youtube, после обнаружения устройства и определения местоположения приложений (часть DIAL). Отправьте HTTP POST-запрос, содержащий ключ сопряжения, в /<apps url>/YouTube. Теперь все эмулирующее устройство должно быть открыто https://www.youtube.com/tv?<pairing key> в окне браузера. Отсюда, я считаю, связь для управления приложением YouTube не отправляется через устройство кастинга, а через открытые вкладки на литейном устройстве и эмуляторе.

Это мое понимание того, как работает устройство хромирования, и, в частности, приложение youtube от просмотра https://github.com/dz0ny/leapcast, который является эмулятором питона, который имеет youtube и google.

Ответ 2

Я реализовал полный приемник хромпрограммы v2, называемый приемником ChromeCast YouMap, доступный в магазине Google Play и магазине Amazon, xda-development thread здесь: http://forum.xda-developers.com/android-tv/chromecast/app-youmap-chromecast-receiver-android-t3161851

Текущий протокол Chromecast полностью отличается от исходного протокола на основе DIAL. Прямо сейчас, только YouTube по-прежнему использует старый протокол, который хромист поддерживает свою обратную совместимость.

Открытие - mDNS, точно так же, как протокол Apple TV bonjour.

Самая сложная часть - аутентификация устройства, отправитель и получатель выполняют рукопожатия, обмениваясь ключами и сертификатами, что очень сложно взломать. AppleTV делает то же самое с использованием шифрования FairPlay.

Следующая сложная часть - это протокол зеркалирования, который также очень сложный, необходимо иметь дело с разбиениями пакетов, повторными передачами пакетов. В целом, протокол хромового зеркалирования хорошо разработан, лучше, чем miracast, лучше, чем зеркалирование AirPlay (я также реализовал оба из них, поэтому я знаю, о чем говорю).

Когда я получу шансы, напишу больше здесь.