כדי להגדיר את סשן 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; } }