我正在使用 cast SDK v2 在提供的路线上投射媒体MediaRouteProviderService
,效果很好。
现在我正在迁移到SDK v3及其状态
在 v3 中,当应用程序进入前台和进入后台时,框架会自动启动和停止发现过程。不应使用 MediaRouteSelector 和 MediaRouter.Callback
那么如何使用MediaRouteProviderService
cast SDK v3提供自定义路由
我正在使用 cast SDK v2 在提供的路线上投射媒体MediaRouteProviderService
,效果很好。
现在我正在迁移到SDK v3及其状态
在 v3 中,当应用程序进入前台和进入后台时,框架会自动启动和停止发现过程。不应使用 MediaRouteSelector 和 MediaRouter.Callback
那么如何使用MediaRouteProviderService
cast SDK v3提供自定义路由
那么如何使用 MediaRouteProviderService 和 cast SDK v3 提供自定义路由
在 v3 中,设备发现现在由 CastContext 处理。在v3 配置设备发现中,它指出:
设备发现完全由 CastContext管理。初始化 CastContext 时,发送方应用程序指定接收方应用程序 ID,并且可以通过在 CastOptions中设置 supportedNamespaces 来选择请求命名空间过滤。CastContext 在内部持有对 MediaRouter 的引用,当发送方应用进入前台时将启动发现过程,并在发送方应用进入后台时停止。
class CastOptionsProvider implements OptionsProvider {
public static final String CUSTOM_NAMESPACE = "urn:x-cast:custom_namespace";
@Override
public CastOptions getCastOptions(Context appContext) {
List<String> supportedNamespaces = new ArrayList<>();
supportedNamespaces.add(CUSTOM_NAMESPACE);
CastOptions castOptions = new CastOptions.Builder()
.setReceiverApplicationId(context.getString(R.string.app_id))
.setSupportedNamespaces(supportedNamespaces)
.build();
return castOptions;
}
@Override
public List<SessionProvider> getAdditionalSessionProviders(Context context) {
return null;
}
}