アプリの 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 クラスでは、カスタム レシーバー アプリケーション ID を設定するなど、Cast セッションを構成します。
詳しくは、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; } }