لضبط إعدادات جلسة 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
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 @Nullable public List<SessionProvider> getAdditionalSessionProviders(Context context) { return null; } }