CastOptions

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

Utilizzare il fornitore 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>

Crea un fornitore di opzioni personalizzato

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

1. Dichiarare il fornitore nel manifest

Innanzitutto, dichiara il tuo fornitore 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 eseguire l'override di getCastOptions() per restituire un'istanza CastOptions. La classe personalizzata OptionsProvider è dove configuri la sessione Cast, ad esempio impostando l'ID applicazione ricevitore personalizzato.

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