【问题标题】:How to stop casting when another app starts casting?当另一个应用程序开始投射时如何停止投射?
【发布时间】:2017-02-09 09:52:38
【问题描述】:

我运行两个应用程序,它们都使用 Cast SDK v2 和 Remote Display API。我从 App #1 开始投射,然后转到 App #2,按下投射按钮并选择一条路线。

预期:应用 #2 开始投射,应用 #1 停止投射。

实际:选择路线后,立即调用 App #2 的 MediaRouter.Callback.onRouteUnselected()。两个应用程序的内容都没有显示在接收器上,但应用程序 #1 的通知控制器仍然存在。

我在 Cast SDK v3 中没有看到这种行为。 Cast SDK v2 中是否有任何方法可以确保在另一个应用开始投射时停止先前的投射会话?

【问题讨论】:

    标签: android chromecast google-cast android-cast-api


    【解决方案1】:

    我还没有这样做,但是您可以尝试实现 addUpdateListener 并在另一个启动时执行 session.stop

    addUpdateListener(listener)
    

    添加一个在 Session 改变时调用的监听器。变化 到以下属性会触发监听器:statusText, 命名空间、状态和接收者的音量。

    侦听器应检查 Session 的状态属性以确定 其连接状态。布尔参数 isAlive 在 赞成状态会话属性。 isAlive 参数仍然是 传入是为了向后兼容,除非

    status = chrome.cast.SessionStatus.STOPPED
    

    停止应用方法:

    function stopApp() {
        session.stop(onSuccess, onError);
    }
    

    【讨论】:

    • 这个答案让我走上了正确的道路:现在我添加了一个覆盖 Cast.Listener.onApplicationMetadataChanged() 的侦听器,以确定新应用程序是否已开始投射,这似乎有效。这需要在同一个GoogleApiClient 上同时添加CastRemoteDisplay.APICast.API;我已经问过separate question,看看是否可以同时使用这两个 API。
    猜你喜欢
    • 2018-03-19
    • 2018-11-28
    • 1970-01-01
    • 2018-02-10
    • 1970-01-01
    • 2017-10-09
    • 2019-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多