如何在其他应用开始投射时停止投射?

时间:2016-09-30 18:33:08

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

我还没有做到这一点,但你可以尝试实施addUpdateListener并在另一个人开始时执行session.stop

addUpdateListener(listener)
  

添加会话更改时调用的侦听器。变化   以下属性将触发侦听器:statusText,   命名空间,状态和接收器的音量。

     

监听器应检查Session的status属性以确定   它的连接状态。不推荐使用布尔参数isAlive   支持状态Session属性。 isAlive参数仍然是   为了向后兼容而传入,除非

,否则为真
status = chrome.cast.SessionStatus.STOPPED

停止应用方法:

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