Можно ли использовать MiniControllerFragment с пользовательским MediaRouteProvider?
Можно ли использовать Google? MiniControllerFragment
работать с моим заказом MediaRouteProvider
?
Причина, по которой я спрашиваю: пользовательский интерфейс кнопки мини-контроллера не появляется, когда я кастую в свой пользовательский MediaRouteProvider. Я заметил, что MiniControllerFragment[1] использует UIMediaController.
Я прочитал код UIMediaController. Похоже, что UIMediaController управляется событиями из синглтона SessionManager. UIMediaController подписывается на SessionManager, но обрабатывает только сеансы класса "CastSession"[4].
Я не уверен, возможно ли мне расширить / создать экземпляр CastSession в моем SessionProvider (в настоящее время я создаю класс, расширенный из cast.framework.Session [2]).
Создание экземпляра объекта CastSession выглядит довольно сложно [3], его конструктор имеет длинный список классов, некоторые из которых, как мне кажется, не могут получить экземпляр из любого места.
Спасибо, Рик.
Заметки
[1] Документы MiniControllerFragment: https://developers.google.com/android/reference/com/google/android/gms/cast/framework/media/widget/MiniControllerFragment
[2] Документы Session / CastSession: https://developers.google.com/android/reference/com/google/android/gms/cast/framework/Session
[3] CastSession
конструктор, согласно декомпилированному файлу.class. Требуются экземпляры недокументированных классов. Похоже, не существует фабричного метода:
public CastSession(
Context var1,
String var2,
String var3,
CastOptions var4,
CastApi var5, //< Can't instantiate this - Rik.
zzws var6, //< Not sure what class that is! - Rik.
zzxe var7 //< Not sure what class that is! - Rik.
)
[4] Работа с делегированными функциями onSessionStarted()
событие от диспетчера сеансов. Заинтересованы только в сеансах CastSession:
private void zza(Session var1) {
if(!this.isActive() && var1 instanceof CastSession && var1.isConnected()){
// Does work with RemoteMediaClient here ...
}
}