投放選項

如要設定應用程式的 Cast 工作階段,請提供 OptionsProvider。使用供應商建構的 CastOptions 物件設定接收器應用程式 ID、管理工作階段生命週期,以及自訂媒體播放行為。

使用預設選項提供者

如要使用預設 Cast 接收器應用程式進行基本設定,請在應用程式的 AndroidManifest.xml 檔案中新增 DefaultCastOptionsProvider

<application>
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="androidx.media3.cast.DefaultCastOptionsProvider" />
</application>

建立自訂選項供應程式

如要進行更進階的設定,例如設定自訂接收器應用程式 ID,您必須自行建立 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 工作階段,例如設定自訂接收端應用程式 ID。

詳情請參閱 CastOptions.Builder

Kotlin

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

Java

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