برای پیکربندی جلسه 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 خودتان را ایجاد کنید.
۱. ارائهدهنده را در مانیفست خود اعلام کنید
ابتدا، ارائهدهنده سفارشیتان را در 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 جایی است که جلسه Cast خود را پیکربندی میکنید، برای مثال، با تنظیم شناسه برنامه گیرنده سفارشی خود.
برای اطلاعات بیشتر، 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 public @Nullable List<SessionProvider> getAdditionalSessionProviders(Context context) { return null; } }