是否可以让 Google 的演员MiniControllerFragment
阵容与我的 custom 一起工作MediaRouteProvider
?
我问的原因:当我投射到我的自定义 MediaRouteProvider 时,迷你控制器按钮 UI 没有出现。我注意到 MiniControllerFragment[1] 使用 UIMediaController。
我通读了 UIMediaController 的代码。看起来 UIMediaController 是由 SessionManager 单例中的事件驱动的。UIMediaController 订阅 SessionManager,但只处理“CastSession”[4] 类的 Session。
我不确定我是否可以在我的 SessionProvider 中扩展/实例化 CastSession(我目前创建了一个从 cast.framework.Session [2] 扩展的类)。
实例化 CastSession 对象[3] 看起来相当棘手,它的构造函数有很长的类列表,其中一些我似乎无法从任何地方获取实例。
谢谢,里克。
笔记
[1] MiniControllerFragment 文档:https ://developers.google.com/android/reference/com/google/android/gms/cast/framework/media/widget/MiniControllerFragment
[2] 会话/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.
)
onSessionStarted()
[4]来自会话管理器的委托函数处理事件。只对 CastSession 会话感兴趣:
private void zza(Session var1) {
if(!this.isActive() && var1 instanceof CastSession && var1.isConnected()){
// Does work with RemoteMediaClient here ...
}
}