אפשרויות Cast

כדי להגדיר את סשן Cast של האפליקציה, צריך לספק OptionsProvider. משתמשים באובייקט CastOptions שנוצר על ידי הספק כדי להגדיר את מזהה אפליקציית המקלט, לנהל את מחזורי החיים של הסשנים ולהתאים אישית את התנהגות ההפעלה של המדיה.

שימוש בספק ברירת המחדל של האפשרויות

כדי להגדיר הגדרה בסיסית שמשתמשת באפליקציית ברירת המחדל של Cast receiver, מוסיפים את DefaultCastOptionsProvider לקובץ AndroidManifest.xml של האפליקציה:

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

יצירת ספק אפשרויות בהתאמה אישית

להגדרות מתקדמות יותר, כמו הגדרת מזהה של אפליקציית מקלט בהתאמה אישית, צריך ליצור OptionsProvider משלכם.

1. הצהרה על הספק במניפסט

קודם כול, צריך להצהיר על הספק המותאם אישית ב-AndroidManifest.xml. חשוב להשתמש בשם המלא של המחלקה.

<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

בשלב הבא, יוצרים מחלקה שמטמיעה את הממשק OptionsProvider. בכיתה הזו, צריך לבטל את getCastOptions() כדי להחזיר מופע של CastOptions. במחלקת OptionsProvider המותאמת אישית מגדירים את סשן Cast, למשל על ידי הגדרת מזהה אפליקציית המקלט המותאמת אישית.

מידע נוסף זמין במאמר בנושא 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;
  }
}