Android 当其他应用程序开始播放时,如何停止播放?

Android 当其他应用程序开始播放时,如何停止播放?,android,chromecast,google-cast,android-cast-api,Android,Chromecast,Google Cast,Android Cast Api,我运行了两个应用程序,它们都使用Cast SDK v2和远程显示API。我从应用程序1开始播放,然后转到应用程序2,按下播放按钮并选择一条路线 应为:应用程序2开始施法,应用程序1停止施法 实际:在我选择路由后,立即调用应用程序2的MediaRouter.Callback.onRouteUnselected()。两个应用程序的内容均未显示在接收器上,但应用程序1的通知控制器仍保留 我在Cast SDK v3中没有见过这种行为。在Cast SDK v2中是否有任何方法可以确保在另一个应用程序开始播

我运行了两个应用程序,它们都使用Cast SDK v2和
远程显示
API。我从应用程序1开始播放,然后转到应用程序2,按下播放按钮并选择一条路线

应为:应用程序2开始施法,应用程序1停止施法

实际:在我选择路由后,立即调用应用程序2的
MediaRouter.Callback.onRouteUnselected()
。两个应用程序的内容均未显示在接收器上,但应用程序1的通知控制器仍保留


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

我还没有这样做,但您可以尝试实现,并在另一个应用程序启动时执行

addUpdateListener(listener)
添加会话更改时调用的侦听器。变化 到以下属性将触发侦听器:statusText, 接收方的名称空间、状态和卷

侦听器应检查会话的status属性以确定 它的连接状态。布尔参数
isAlive
在中不推荐使用 支持状态会话属性。isAlive参数仍然为空 为向后兼容而传入,并且为true,除非

停止应用程序方法:

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

这个答案让我走上了正确的道路:现在我添加了一个监听器,它覆盖了
Cast.listener.onApplicationMetadataChanged()
,以确定一个新的应用程序是否已经开始播放,这似乎是可行的。这需要在同一个
GoogleAppClient
上添加
CastremotedDisplay.API
Cast.API
;我已经问了一个问题,看看同时使用这两种API是否可以接受。
function stopApp() {
    session.stop(onSuccess, onError);
}