خيارات البث

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

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

لإجراء إعداد أساسي يستخدم تطبيق استقبال البث التلقائي، أضِف 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
  public @Nullable List<SessionProvider> getAdditionalSessionProviders(Context context) {
    return null;
  }
}