Чтобы настроить сеанс Cast вашего приложения, предоставьте OptionsProvider . Используйте объект CastOptions , созданный поставщиком, для установки идентификатора приложения-получателя, управления жизненными циклами сеансов и настройки поведения воспроизведения мультимедиа.
Использовать поставщика опций по умолчанию
Для базовой настройки, использующей приложение приемника Cast по умолчанию, добавьте DefaultCastOptionsProvider в файл AndroidManifest.xml вашего приложения:
<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 .
Котлин
import android.content.Context import com.google.android.gms.cast.framework.CastOptions import com.google.android.gms.cast.framework.OptionsProvider import com.google.android.gms.cast.framework.SessionProvider 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>" } }
Ява
import android.content.Context; import com.google.android.gms.cast.framework.CastOptions; import com.google.android.gms.cast.framework.OptionsProvider; import com.google.android.gms.cast.framework.SessionProvider; import java.util.List; public 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 public List<SessionProvider> getAdditionalSessionProviders(Context context) { return null; } }