Чтобы настроить сеанс трансляции в приложении, укажите 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; } }