我有一个允许将内容流式传输到chromecast的应用程序。根据app逻辑,只有一个设备可以连接到chromecast
当我们连接到接收器时,我们正在使用:
Cast.CastOptions.Builder apiOptionsBuilder = Cast.CastOptions
.builder(mSelectedDevice, mCastClientListener);
GoogleApiClient mApiClient= new GoogleApiClient.Builder(mContext)
.addApi(Cast.API, apiOptionsBuilder.build())
.addConnectionCallbacks(mConnectionCallbacks)
.addOnConnectionFailedListener(mConnectionFailedListener)
.build();
mApiClient.connect();
当chromecast成功连接时,我们启动接收器
Cast.CastApi.launchApplication(mApiClient, mChromeCastAppId, true)
.setResultCallback(
new ResultCallback<Cast.ApplicationConnectionResult>() {
@Override
public void nResult(Cast.ApplicationConnectionResult result) {
//do logic when successfully connected
}
}
});
如果其他发送方连接到设备,已经由第一个设备和播放流控制,它会重新启动接收方,并且第一个设备在onApplicationDisconnected
回调中获得2005错误,但MediaRouteButton仍然具有类似于已连接到设备的状态。我找不到重置路线的方法。
如果我点击MediaRouteButton,我可以看到对话框,它允许我控制音量并断开与chromecast的连接。
这让用户感到困惑。如何重置MediaRouteButton?
答案 0 :(得分:1)
呼叫:
mMediaRouter.selectRoute(mMediaRouter.getDefaultRoute())