Para configurar la sesión de Cast de tu app, proporciona un OptionsProvider. Usa el
objeto CastOptions que compila el proveedor para establecer el ID de la aplicación receptora,
administrar los ciclos de vida de la sesión y personalizar el comportamiento de reproducción de contenido multimedia.
Usa el proveedor de opciones predeterminado
Para una configuración básica que usa la aplicación receptora de Cast predeterminada, agrega el
DefaultCastOptionsProvider al archivo AndroidManifest.xml de tu app:
<application>
<meta-data
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="androidx.media3.cast.DefaultCastOptionsProvider" />
</application>
Crea un proveedor de opciones personalizado
Para configuraciones más avanzadas, como establecer un ID de aplicación receptora personalizado, debes crear tu propio OptionsProvider.
1. Declara el proveedor en tu manifiesto
Primero, declara tu proveedor personalizado en AndroidManifest.xml. Asegúrate de usar
el nombre de clase completamente calificado.
<application>
<meta-data
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
android:value="path.to.your.class.MyCustomCastOptionsProvider" />
</application>
2. Implementa la interfaz de OptionsProvider
Luego, crea una clase que implemente la OptionsProvider interfaz. En esta
clase, debes anular getCastOptions() para mostrar una instancia de CastOptions.
La clase OptionsProvider personalizada es donde configuras tu sesión de Cast, por
ejemplo, estableciendo el ID de tu aplicación receptora personalizada.
Para obtener más información, consulta CastOptions.Builder.
Kotlin
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>" } }
Java
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; } }