Opciones de transmisión

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;
  }
}