1

我正在使用 cast SDK v2 在提供的路线上投射媒体MediaRouteProviderService,效果很好。

现在我正在迁移到SDK v3及其状态

在 v3 中,当应用程序进入前台和进入后台时,框架会自动启动和停止发现过程。不应使用 MediaRouteSelector 和 MediaRouter.Callback

那么如何使用MediaRouteProviderServicecast SDK v3提供自定义路由

4

1 回答 1

0

那么如何使用 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;
    }
}
于 2017-02-08T06:49:03.083 回答