Android Cast SDK V3 и MediaRouteProviderService

Я использовал Cast SDK v2 для приведения носителей на предоставленные маршруты MediaRouteProviderService который работал отлично.

Сейчас я перехожу на SDK v3 и его состояния

В версии 3 процесс обнаружения автоматически запускается и останавливается платформой, когда приложение выходит на передний план и уходит на задний план, соответственно. MediaRouteSelector и MediaRouter.Callback не должны использоваться

Так как предоставить пользовательские маршруты, используя MediaRouteProviderService с литой SDK v3

1 ответ

Итак, как предоставить пользовательские маршруты с помощью MediaRouteProviderService с Cast SDK v3

В версии 3 обнаружение устройств теперь обрабатывается CastContext. В версии 3 "Настройка обнаружения устройств" говорится, что:

Обнаружение устройства полностью управляется CastContext. При инициализации CastContext приложение-отправитель указывает идентификатор приложения-получателя и при необходимости может запросить фильтрацию пространства имен, задавая SupportNamespaces в 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;
    }
}
Другие вопросы по тегам