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