1

是否可以让 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 ...
   }
}
4

0 回答 0