Options Cast

Pour configurer la session Cast de votre application, fournissez un OptionsProvider. Utilisez l'objet CastOptions créé par le fournisseur pour définir l'ID de l'application réceptrice, gérer les cycles de vie des sessions et personnaliser le comportement de lecture multimédia.

Utiliser le fournisseur d'options par défaut

Pour une configuration de base qui utilise l'application réceptrice Cast par défaut, ajoutez DefaultCastOptionsProvider au fichier AndroidManifest.xml de votre application :

<application>
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="androidx.media3.cast.DefaultCastOptionsProvider" />
</application>

Créer un fournisseur d'options personnalisé

Pour les configurations plus avancées, comme la définition d'un ID d'application réceptrice personnalisé, vous devez créer votre propre OptionsProvider.

1. Déclarer le fournisseur dans votre fichier manifeste

Tout d'abord, déclarez votre fournisseur personnalisé dans AndroidManifest.xml. Veillez à utiliser le nom de classe complet.

<application>
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="path.to.your.class.MyCustomCastOptionsProvider" />
</application>

2. Implémenter l'interface OptionsProvider

Ensuite, créez une classe qui implémente l'interface OptionsProvider. Dans cette classe, vous devez remplacer getCastOptions() pour renvoyer une instance CastOptions. La classe OptionsProvider personnalisée vous permet de configurer votre session Cast, par exemple en définissant l'ID de votre application réceptrice personnalisée.

Pour en savoir plus, consultez 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;
  }
}