Android Cast SDK V3和MediaRouteProviderService

时间:2017-02-06 10:36:30

标签: android chromecast mediarouteproviderservice

我正在使用强制转换SDK v2在提供的MediaRouteProviderService路由上投放媒体,效果很好。

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

  

在v3中,发现过程自动启动和停止   当应用程序到达前台并进入时的框架   背景,分别。 MediaRouteSelector和MediaRouter.Callback   不应该使用

那么如何使用MediaRouteProviderService使用强制转换SDK v3

来提供自定义路由

1 个答案:

答案 0 :(得分:0)

那么如何使用MediaRouteProviderService和cast SDK v3提供自定义路由

在v3中,设备发现现在由CastContext处理。在v3 Configure device discovery中,它声明:

  

设备发现完全由   CastContext。   初始化CastContext时,发件人应用程序指定   接收器应用程序ID,可以选择请求命名空间   通过设置supportedNamespaces进行过滤   CastOptions。   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;
    }
}