我正在为 Chromecast 开发应用程序。我已经从https://github.com/googlecast/cast-android-sample尝试了 Android 示例,他工作正常 - 我可以点击 Cast 图标,选择设备并开始流式传输。所以,MediaRouter.Callback 看起来像这样:
private class MyMediaRouterCallback extends MediaRouter.Callback {
@Override
public void onRouteSelected(MediaRouter router, RouteInfo route) {
MediaRouteHelper.requestCastDeviceForRoute(route);
}
}
它有效。但我想在没有流媒体按钮的情况下在我的设备上开始流媒体。所以我将此回调更改为:
private class MyMediaRouterCallback extends MediaRouter.Callback {
@Override
public void onRouteAdded (MediaRouter router, RouteInfo route)
MediaRouteHelper.requestCastDeviceForRoute(route);
}
}
但这不起作用。此回调触发,requestCastDeviceForRoute 使用所需设备返回 true(我通过 route.getName() 看到它),但从未调用过来自 CastSampleActivity 的 onDeviceAvailable。我尝试使用 Handler.postDelayed 延迟调用 requestCastDeviceForRoute,但仍然没有。
那么,在 MediaRouter.Callback 中检测到他之后,如何正确使用 requestCastDeviceForRoute 在没有媒体按钮的 Chromecast 设备上进行流式传输?