خيارات البث

لضبط إعدادات جلسة 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;
  }
}