所以我将Mediarouter源修改为依赖ActionBarSherlock而不是AppCompat。但是,现在没有调用来自 MediaRouteAdapter 的回调onDeviceAvailable(...)
。
关于如何让它发挥作用的任何想法?
我不想让投射按钮始终可见。相反,我想onDeviceAvailable(..)
仅在设备可用时使其可见。
所以我将Mediarouter源修改为依赖ActionBarSherlock而不是AppCompat。但是,现在没有调用来自 MediaRouteAdapter 的回调onDeviceAvailable(...)
。
关于如何让它发挥作用的任何想法?
我不想让投射按钮始终可见。相反,我想onDeviceAvailable(..)
仅在设备可用时使其可见。
我发现了一个关于如何解决这个问题的技巧。
如果您使用 appcompat,则只有当您的网络中有 chromecast 设备时,才能看到投射图标,具体取决于您对onDeviceAvailable(...)
.
但是,如果您使用 ABS,则onDeviceAvailable(...)
当网络上有可用的 chromecast 设备时,不会调用该方法。因此,为了看到演员图标,我们必须将其设置为始终可见。
所以问题是演员图标始终可见(当您将可见性设置为可见或将其添加到操作栏时)。
但是: MediaRouter有不同的视图状态。一种用于投射设备可用时,另一种用于没有可用投射设备时。
Mediarouter 库由可绘制的 png 组成,它们是设备可用与否的图标。
只需用空白资源或任何适合该应用程序的资源替换“没有可用路线”的资源。
当设备可用时,将显示正确的投射图标,当不可用时,将显示您的自定义资源(如果资源是空白视图,则为空白)。
以下是有关如何获取 mediarouter 源代码以及如何解决此问题的完整详细信息:http ://www.droidorbit.com/2013/10/mediarouter-and-actionbarsherlock.html