【问题标题】:One sender disconnecting causes all senders to disconnect一个发件人断开连接会导致所有发件人断开连接
【发布时间】:2014-02-23 12:08:27
【问题描述】:

我正在试验 Cast-HelloText 示例应用的修改版本,特别是让两个发件人同时连接到该应用。

调用 castReceiverManager.onSenderConnected() 回调,我看到我连接了 2 个发送者(使用 window.castReceiverManager.getSenders().length),然后两者都可以发送消息。

但是,当任何一个断开连接时,应用程序就会终止。我已经尝试记录在 castReceiverManager.onSenderDisconnected() 回调中连接的发件人数量(没有成功),并且我已经注释掉了 window.close() 调用。

在任何发件人断开连接时,应用似乎已关闭(chromecast 返回主屏幕)。

关于如何让一个应用程序具有多个发件人并且在任何发件人断开连接时不会结束的任何想法?

【问题讨论】:

    标签: google-cast chromecast


    【解决方案1】:

    检查您的发件人,看看它在断开连接时会做什么。当您断开发送方与接收方的连接并且该呼叫停止接收方上的应用程序时,Github 上的未修改版本会调用 Cast.CastApi.stopApplication(mApiClient)。如果您不希望这种情况发生,则不应调用该方法,但您需要确保

    • 让您的应用继续运行是有意义的
    • 确保您的接收器正确处理事情

    【讨论】:

    • 宾果游戏!我还没有花任何时间研究发送方 API 或示例代码(正在通过接收方 API 苦苦学习),事实上你是正确的。当接收器不再有任何连接的发送器时,接收器会自行停止 - 这样就可以解决这个问题。谢谢。
    • 顺便说一句:在示例代码中,这意味着代码“if (window.castReceiverManager.getSenders().length == 0) {window.close();}”(在 receiver.html 中)是多余的,因为发件人首先结束了应用程序 - 所以有点误导。
    • 这不是多余的;您的发送者可能会超出 wifi 范围,或者可能会进入睡眠状态,因此它可能会在您不知情的情况下断开连接,因此接收者有该代码。同样,这取决于您的应用程序的性质,如果没有连接发件人,它是必须停止还是应该继续运行;如果是 Netflix,如果所有连接的设备都进入睡眠状态并失去连接,我希望它继续下去。
    • 好的。我现在看到了。感谢您指出发件人可能会断开连接的其他情况。
    • 感谢您的解释
    猜你喜欢
    • 2013-10-06
    • 1970-01-01
    • 2014-03-27
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多