如何在另一个应用程序开始投射时停止投射?

How to stop casting when another app starts casting?

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

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

实际: 在我 select 一条路线之后,立即调用 App #2 的 MediaRouter.Callback.onRouteUnselected()。这两个应用程序的内容都不会显示在接收器上,但应用程序 #1 的通知控制器仍然存在。

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

我还没有这样做,但你可以尝试在另一个开始时实施 addUpdateListener and perform session.stop

addUpdateListener(listener)

Adds a listener that is invoked when the Session has changed. Changes to the following properties will trigger the listener: statusText, namespaces, status, and the volume of the receiver.

Listeners should check the status property of the Session to determine its connection status. The boolean parameter isAlive is deprecated in favor of the status Session property. The isAlive parameter is still passed in for backwards compatibility, and is true unless

status = chrome.cast.SessionStatus.STOPPED

停止应用程序方法:

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