#chromecast #google-cast
#chromecast #google-cast
Вопрос:
Недавно я переключил свое приложение Chromecast на пользовательский приемник. Я все еще использую библиотеку Cast Companion. Пользовательский приемник в основном основан на этом https://github.com/googlecast/cast-custom-receiver/blob/master/sample_media_receiver.html единственные изменения — это добавление логотипа и экрана загрузки, а также закомментирование этой строки appConfig.maxInactivity = 6000;
, хотя сначала я не закомментировал ее, и у меня все еще была та же проблема.
В любом случае проблема довольно проста и возникает только у нескольких человек. Это происходит со мной с одним из моих тестовых устройств, не со всеми и не всегда. По сути, я начинаю потоковое видео, и все в порядке, затем экран устройства гаснет, когда я снова выключаю его, приложение отключается от Chromecast. У меня не настроен Wi-Fi на отключение во время сна, и все пользователи, которые жаловались на это, утверждают, что на их устройствах также не включена эта настройка.
Может быть совпадением, что это произошло, когда я переключился на пользовательский приемник, но я просто хотел убедиться, что мне не нужно что-то добавить в свой пользовательский приемник, чтобы сообщить коду CCL оставаться на связи?
Спасибо.
Ответ №1:
Сегодня я столкнулся с аналогичной проблемой. Основная причина такого поведения заключается в том, что, как только отправитель (в вашем случае телефон) заблокирован (спящий режим), на стороне получателя запускается событие senderDisconnected. И если вы проверите event.reason, он будет неизвестен, поэтому вы, вероятно, можете проверить причину, если она неизвестна, тогда не останавливайте воспроизведение на приемнике (window.close).
Когда сам отправитель отключается, event.reason — «disconnected_from_sender».
Надеюсь, это поможет.
Это не имеет ничего общего с maxInactivity.
Комментарии:
1. Спасибо. Это именно та проблема, когда мое устройство переходит в спящий режим и, таким образом, останавливает приложение-приемник. Проверка
event.reason
наряду с сохранением отправки запросов при переходе в спящий режим (планировщик задач) позволила моему приложению продолжать работать даже в заблокированном состоянии.
Ответ №2:
Политика отключения Wi-Fi при переходе телефона в спящий режим зависит от марки и поставщика . В настоящее время пакет Cast SDK поддерживает блокировку для подключения Wi-Fi до тех пор, пока есть соединение cast, но даже это не является 100% гарантией работы для всех телефонов / моделей / поставщиков /…. Это не имеет никакого отношения к вашему приемнику. Правильное решение — не пытаться бороться с отключением Wi-Fi, когда телефон переходит в спящий режим, вместо этого вам нужно рассмотреть возможность добавления некоторой логики для восстановления подключения к cast при пробуждении телефона и восстановлении подключения к Wi-Fi (зарегистрируйте широковещательный приемник для прослушивания изменений подключения к Wi-Fi).
Комментарии:
1. Как вы можете «восстановить подключение к cast», если приложение receiver уже закрыто? Единственное, что может предотвратить его закрытие, — это каким-то образом продолжать отправлять запросы даже в спящем режиме (фоновая служба?).
2. В исходном сообщении речь идет не о разрыве приемника, а о том, что приложение-отправитель отключается. Если у вас другой вопрос / ситуация, я предлагаю вам опубликовать новый вопрос.