При регистрации MinimalMediaRouteProvider/MediaRouteButton из Android Chromecast SDK мы получаем стандартный диалог для подключения к существующим устройствам Cromecast. После подключения к устройству в том же диалоговом окне также можно настроить громкость с помощью перетаскиваемой панели поиска. У меня возникли проблемы с синхронизацией положения этой панели поиска громкости с фактической громкостью, которая уже установлена на устройстве Chromecast.
В рамках регистрации MinimalMediaRouteProvider мы предоставляем реализацию com.google.cast.MediaRouteAdapter. OnSetVolume(volume) этого интерфейса вызывается, когда пользователь перетаскивает панель громкости seekBar выше. Это дает нам отличный способ обновить уровень громкости подключенного канала Chromecast с помощью messageStream.setVolume(volume).
Проблема в том, что после обновления тома невозможно сообщить пользовательскому интерфейсу MinimalMediaRouteProvider, что том изменился, чтобы он мог позиционировать себя соответствующим образом — в настоящее время он всегда показывает том как 0.
Как правильно уведомить MinimalMediaRouteProvider о текущем уровне громкости, чтобы он мог обновить свой пользовательский интерфейс громкости?
Глядя на образец MediaRoute, включенный в библиотеку поддержки 7, кажется, что есть способ создать MediaRouteDescriptor, обновить там том и, таким образом, передать это обратно в MediaRouteProvider, но не очень понятно, как это сделать в содержимом Chromecast. /Минималмедиароутепровидер.