برای پیکربندی جلسه «پخش محتوا» برنامه، 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 خودتان را ایجاد کنید.
۱. ارائهدهنده را در مانیفست خود اعلام کنید
ابتدا ارائهدهنده سفارشیتان را در 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>
۲. پیادهسازی میانای OptionsProvider
سپس کلاسی ایجاد کنید که رابط OptionsProvider را پیادهسازی کند. در این کلاس، باید getCastOptions() را ملغی کنید تا نمونه CastOptions را برگردانید.
در کلاس سفارشی OptionsProvider، جلسه «پخش محتوا» را پیکربندی میکنید، برای مثال، با تنظیم شناسه برنامه گیرنده سفارشی.
برای اطلاعات بیشتر، CastOptions.Builder را ببینید.
کاتلین
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>" } }
جاوا
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; } }