خيارات البث

لضبط جلسة Cast في تطبيقك، عليك توفير OptionsProvider. استخدِم عنصر CastOptions الذي أنشأه مقدّم الخدمة لضبط رقم تعريف تطبيق جهاز الاستقبال، وإدارة دورات حياة الجلسات وتخصيص سلوك تشغيل الوسائط.

استخدام مقدّم الخيارات التلقائي

لإجراء عملية إعداد أساسية تستخدم تطبيق جهاز استقبال Cast التلقائي، أضِف 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;
  }
}