Opsi Transmisi

Untuk mengonfigurasi sesi Cast aplikasi Anda, berikan OptionsProvider. Gunakan objek CastOptions yang dibuat oleh penyedia untuk menetapkan ID aplikasi penerima, mengelola siklus proses sesi, dan menyesuaikan perilaku pemutaran media.

Menggunakan penyedia opsi default

Untuk penyiapan dasar yang menggunakan aplikasi penerima Cast default, tambahkan DefaultCastOptionsProvider ke file AndroidManifest.xml aplikasi Anda:

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

Membuat penyedia opsi kustom

Untuk konfigurasi yang lebih canggih, seperti menyetel ID aplikasi penerima kustom, Anda harus membuat OptionsProvider Anda sendiri.

1. Mendeklarasikan penyedia dalam manifes Anda

Pertama, deklarasikan penyedia kustom Anda di AndroidManifest.xml. Pastikan untuk menggunakan nama class yang sepenuhnya memenuhi syarat.

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

2. Menerapkan antarmuka OptionsProvider

Selanjutnya, buat class yang mengimplementasikan antarmuka OptionsProvider. Dalam class ini, Anda harus mengganti getCastOptions() untuk menampilkan instance CastOptions. Class OptionsProvider kustom adalah tempat Anda mengonfigurasi sesi Cast, misalnya, dengan menetapkan ID aplikasi penerima kustom.

Untuk mengetahui informasi selengkapnya, lihat 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;
  }
}