CastOptions

Per configurare la sessione di Cast della tua app, fornisci un OptionsProvider. Utilizza l'oggetto CastOptions creato dal provider per impostare l'ID dell'applicazione ricevitore, gestire i cicli di vita delle sessioni e personalizzare il comportamento di riproduzione dei contenuti multimediali.

Utilizzare il provider di opzioni predefinito

Per una configurazione di base che utilizza l'applicazione ricevitore Cast predefinita, aggiungi DefaultCastOptionsProvider al file AndroidManifest.xml della tua app:

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

Creare un provider di opzioni personalizzato

Per configurazioni più avanzate, ad esempio l'impostazione di un ID dell'applicazione ricevitore personalizzato, devi creare il tuo OptionsProvider.

1. Dichiarare il provider nel file manifest

Innanzitutto, dichiara il provider personalizzato in AndroidManifest.xml. Assicurati di utilizzare il nome completo della classe.

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

2. Implementare l'interfaccia OptionsProvider

Successivamente, crea una classe che implementi l'interfaccia OptionsProvider. In questa classe, devi sostituire getCastOptions() per restituire un'istanza CastOptions. La classe OptionsProvider personalizzata è il punto in cui configuri la sessione di Cast, for esempio, impostando l'ID dell'applicazione ricevitore personalizzato.

Per saperne di più, 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;
  }
}