CastOptions

Чтобы настроить сеанс трансляции в приложении, укажите OptionsProvider. Используйте объект CastOptions, созданный поставщиком, чтобы задать идентификатор приложения-получателя, управлять жизненным циклом сеанса и настраивать воспроизведение медиаконтента.

Как использовать поставщика вариантов по умолчанию

Для базовой настройки, в которой используется приемник Cast по умолчанию, добавьте в файл AndroidManifest.xml своего приложения следующую строку:DefaultCastOptionsProvider

<application>
  ...
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="androidx.media3.cast.DefaultCastOptionsProvider" />
  ...
</application>

Как создать собственного поставщика вариантов

Для более сложных конфигураций, например для настройки собственного идентификатора приложения-приемника, необходимо создать собственный OptionsProvider.

1. Как объявить поставщика в манифесте

Сначала объявите своего поставщика в файле AndroidManifest.xml. Убедитесь, что вы используете полное имя класса.

<application>
  ...
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="path.to.your.class.MyCustomCastOptionsProvider" />
  ...
</application>

2. Как реализовать интерфейс OptionsProvider

Затем создайте класс, реализующий интерфейс OptionsProvider. В этом классе необходимо переопределить метод getCastOptions(), чтобы он возвращал экземпляр CastOptions. В пользовательском классе OptionsProvider настраивается сеанс Cast, например задается идентификатор пользовательского приложения-получателя.

Подробнее о классе CastOptions.Builder…

Kotlin

class MyCustomCastOptionsProvider : OptionsProvider {

  override fun getCastOptions(context: Context): CastOptions {
    return CastOptions.Builder()
      .setReceiverApplicationId(APP_ID)
      .setRemoteToLocalEnabled(true)
      .build()
  }

  override fun getAdditionalSessionProviders(context: Context): List<SessionProvider>? {
    return null
  }

  companion object {
    // Add your receiver app ID in <APP_ID>.
    private const val APP_ID = "<APP_ID>"
  }
}

Java

public static final class MyCustomCastOptionsProvider implements OptionsProvider {

  // Add your receiver app ID in <APP_ID>.
  public static final String APP_ID = "<APP_ID>";

  @Override
  public CastOptions getCastOptions(Context context) {
    return new CastOptions.Builder()
        .setReceiverApplicationId(APP_ID)
        .setRemoteToLocalEnabled(true)
        .build();
  }

  @Override
  @Nullable
  public List<SessionProvider> getAdditionalSessionProviders(Context context) {
    return null;
  }
}