Para configurar la sesión de Cast de tu app, proporciona un OptionsProvider. Usa el objeto CastOptions compilado por el proveedor para establecer el ID de la aplicación receptora, administrar los ciclos de vida de las sesiones 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 del receptor de Cast predeterminada, agrega 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 del receptor personalizado, debes crear tu propio OptionsProvider.
1. Cómo declarar 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
A continuación, crea una clase que implemente la interfaz OptionsProvider. En esta clase, debes anular getCastOptions() para devolver 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; } }