【问题标题】:Chromecast Sender App Doesn't Detect Disconnection/ReconnectionChromecast Sender 应用程序未检测到断开/重新连接
【发布时间】:2014-04-03 22:51:30
【问题描述】:

我之前使用预览版 SDK 开发了一个 android sender 应用,发现当打开或关闭 Chromecast 时,该应用很快发现了这一点并更改了媒体路由按钮的状态。

但是,对于新的 SDK,如果 Chromecast 在应用未连接到它的情况下被拔出,则永远不会调用 MediaRouter.Callback.onRouteUnselected() 并且 Cast 图标仍然可见。在某些情况下,即使应用程序关闭并再次打开,onRouteAdded 也会在启动时调用之前连接的 Chromecast 的详细信息,即使它不再插入,因此不在网络上,这表明某处存在某种缓存.

我在我自己的应用程序(使用配套库)和 github 上的示例 CastVideos-android 应用程序中都注意到了这一点。这会像这样设置回调:

mMediaRouter = MediaRouter.getInstance(context);
mMediaRouteSelector = new MediaRouteSelector.Builder().addControlCategory(
    CastMediaControlIntent.categoryForCast(mApplicationId)).build();

mMediaRouterCallback = new CastMediaRouterCallback(this, context);
mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback,
    MediaRouter.CALLBACK_FLAG_PERFORM_ACTIVE_SCAN);

这会导致非常粗糙的用户体验 - 有什么方法可以改进它吗?也许我可以传递的某些标志将执行比 CALLBACK_FLAG_PERFORM_ACTIVE_SCAN 更主动的扫描,从而检测到不再在网络上的 Chromecast?或者也许我可以每隔一段时间再次扫描并确保 chromecast 仍然存在的某种方法?我查看了 API,但什么都看不到。

编辑:更糟糕的是,我还注意到,如果 Chromecast 被拔掉然后你尝试投射到它,它会断开连接(很好)但在重新插入时不会检测到 Chromecast。即使是这样如果您退出应用程序并重新启动它。

【问题讨论】:

  • 您是否希望很多用户拔掉自己的 Chromecast,然后故意尝试投射到它,然后不知道为什么它不起作用?
  • 在切换到电视上的 Chromecast 频道之前,有人先拔掉电源线然后尝试开始投射,这并非不可想象。另一个问题是,它会制作现场演示,您既要演示 chromecast 应用程序,又要实际拔下东西并将其传递给真正令人伤脑筋的东西。
  • 此外,如果我不小心将 chromecast 的电源线从我的 chromecast 中撞了出来,并且看不到图片,但仍然可以看到发件人应用程序上的投射按钮,我会假设 chromecast 仍处于打开状态,但HDMI 连接有问题。最终我会弄明白的,但不是很好。

标签: android google-cast chromecast


【解决方案1】:

您概述的行为是由 SDK 中的错误引起的,该错误将在 Google Play 服务的下一版本中解决。

【讨论】:

  • 通过 Sender 应用程序断开连接时是否存在类似的错误含义,尽管运行了“拆卸”代码,但 Receiver 并未关闭?我经历了很多。
  • 什么是“tearDown”代码?如果您指的是特定代码,则需要清楚它是什么。此外,您还需要具体说明所使用的接收器。您的问题与此处的原始帖子完全不同,因此您需要创建一个新帖子,而不是在 cmets 中提出不同的问题。
  • teardown() 是示例 Google Cast Android 应用中的一个函数。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 2014-03-02
相关资源
最近更新 更多