如何在完成 Activity 后断开与 Cast 的连接?
How to disconnect from Cast when finishing Activity?
这是我正在做的事情:
- 正在通过“设置”手动连接到 ChromeCast。
- 启动我的应用程序,该应用程序管理演示文稿以使用我已连接的 ChromeCast 设备显示自定义布局。
- 正在手动关闭我的应用程序。
- 到这个时候,我仍然可以看到我的设备投屏。这是我想以编程方式断开投射的地方,这样我就再也看不到屏幕投射了。
在进行演示时,我可以访问要投射到的显示器:
MediaRouter.RouteInfo route = mMediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO);
return route != null ? route.getPresentationDisplay() : null;
关于如何实现此功能有什么想法吗?
更新:
对于那些对此感兴趣的人,我就是这样做的(感谢 Ali Naddaf 的回复):
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public void disconnect(){
MediaRouter mMediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
mMediaRouter.selectRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO, mMediaRouter.getDefaultRoute());
}
如果我没理解错的话,您是让用户在您的应用之外启动一个屏幕 casting/mirroring。然后用户进入您的应用程序,当他们离开时,您想断开连接吗?如果我不正确,请告诉我。
可以断开屏幕镜像,但我不确定这样做是否正确。当用户进入您的应用程序时,您不知道用户是否因为您的应用程序或其他原因打开了屏幕投射。如果用户在进入您的应用程序之前出于某些其他原因这样做了,那么您的应用程序在离开时断开用户连接是不正确的。你同意吗?
这对我有用:
mediarouter.unselect(0)
对于像我一样使用 v3 Cast SDK 寻找答案的人:
mSessionManager.endCurrentSession(true);
如下所示找到 SessionManager 并断开与 chromecast 会话的连接:
mRemoteMediaClient.stop(); // stop remote media
CastContext castContext = CastContext.getSharedInstance(this);
SessionManager mSessionManager = castContext.getSessionManager();
mSessionManager.endCurrentSession(true);
这是我正在做的事情:
- 正在通过“设置”手动连接到 ChromeCast。
- 启动我的应用程序,该应用程序管理演示文稿以使用我已连接的 ChromeCast 设备显示自定义布局。
- 正在手动关闭我的应用程序。
- 到这个时候,我仍然可以看到我的设备投屏。这是我想以编程方式断开投射的地方,这样我就再也看不到屏幕投射了。
在进行演示时,我可以访问要投射到的显示器:
MediaRouter.RouteInfo route = mMediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO);
return route != null ? route.getPresentationDisplay() : null;
关于如何实现此功能有什么想法吗?
更新:
对于那些对此感兴趣的人,我就是这样做的(感谢 Ali Naddaf 的回复):
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
public void disconnect(){
MediaRouter mMediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
mMediaRouter.selectRoute(MediaRouter.ROUTE_TYPE_LIVE_VIDEO, mMediaRouter.getDefaultRoute());
}
如果我没理解错的话,您是让用户在您的应用之外启动一个屏幕 casting/mirroring。然后用户进入您的应用程序,当他们离开时,您想断开连接吗?如果我不正确,请告诉我。
可以断开屏幕镜像,但我不确定这样做是否正确。当用户进入您的应用程序时,您不知道用户是否因为您的应用程序或其他原因打开了屏幕投射。如果用户在进入您的应用程序之前出于某些其他原因这样做了,那么您的应用程序在离开时断开用户连接是不正确的。你同意吗?
这对我有用:
mediarouter.unselect(0)
对于像我一样使用 v3 Cast SDK 寻找答案的人:
mSessionManager.endCurrentSession(true);
如下所示找到 SessionManager 并断开与 chromecast 会话的连接:
mRemoteMediaClient.stop(); // stop remote media
CastContext castContext = CastContext.getSharedInstance(this);
SessionManager mSessionManager = castContext.getSessionManager();
mSessionManager.endCurrentSession(true);