Устройство Chromecast - это "устройство-приемник [], в котором запущен уменьшенный браузер Chrome с приложением-получателем". Можно ли загрузить и установить это приложение-получатель в браузере Chrome, например, на моем ноутбуке Windows?
Создайте собственное устройство Chromecast
Ответ 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 (я также реализовал оба из них, поэтому я знаю, о чем говорю).
Когда я получу шансы, напишу больше здесь.
Ответ 3
Google находится в процессе открытого поиска некоторой части хром-роли.
https://code.google.com/p/chromium/codesearch#chromium/src/chromecast/
https://code.google.com/p/chromium/issues/list?q=label:Chromecast
Таким образом, теоретически вы можете создать аналогичное устройство.