CastOptions

برای پیکربندی جلسه‌ی 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 مراجعه کنید.

کاتلین

import android.content.Context
import com.google.android.gms.cast.framework.CastOptions
import com.google.android.gms.cast.framework.OptionsProvider
import com.google.android.gms.cast.framework.SessionProvider

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>"
  }
}

جاوا

import android.content.Context;
import com.google.android.gms.cast.framework.CastOptions;
import com.google.android.gms.cast.framework.OptionsProvider;
import com.google.android.gms.cast.framework.SessionProvider;
import java.util.List;

public 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 List<SessionProvider> getAdditionalSessionProviders(Context context) {
    return null;
  }
}