Streamingoptionen

Wenn du die Cast-Sitzung deiner App konfigurieren möchtest, gib eine OptionsProvider an. Verwende das vom Anbieter erstellte CastOptions-Objekt, um die Anwendungs-ID der Empfänger-App festzulegen, den Lebenszyklus von Sitzungen zu verwalten und das Verhalten der Medienwiedergabe anzupassen.

Standardanbieter für Optionen verwenden

Für eine einfache Einrichtung, bei der die Standard-Cast-Empfänger-App verwendet wird, fügen Sie der AndroidManifest.xml-Datei Ihrer App die DefaultCastOptionsProvider hinzu:

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

Benutzerdefinierten Optionsanbieter erstellen

Für komplexere Konfigurationen, z. B. zum Festlegen einer benutzerdefinierten Empfänger-Anwendungs-ID, musst du eine eigene OptionsProvider erstellen.

1. Anbieter im Manifest deklarieren

Deklarieren Sie zuerst Ihren benutzerdefinierten Anbieter in AndroidManifest.xml. Achten Sie darauf, den voll qualifizierten Klassennamen zu verwenden.

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

2. OptionsProvider-Schnittstelle implementieren

Erstellen Sie als Nächstes eine Klasse, die die Schnittstelle OptionsProvider implementiert. In dieser Klasse müssen Sie getCastOptions() überschreiben, um eine CastOptions-Instanz zurückzugeben. In der benutzerdefinierten OptionsProvider-Klasse konfigurierst du deine Cast-Sitzung, z. B. durch Festlegen der Anwendungs-ID deiner benutzerdefinierten Empfänger-App.

Weitere Informationen findest du unter CastOptions.Builder.

Kotlin

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

public static 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 @Nullable List<SessionProvider> getAdditionalSessionProviders(Context context) {
    return null;
  }
}