Tùy chọn truyền

Để định cấu hình phiên truyền của ứng dụng, hãy cung cấp một OptionsProvider. Sử dụng đối tượng CastOptions do nhà cung cấp tạo để đặt mã ứng dụng nhận, quản lý vòng đời của phiên và tuỳ chỉnh hành vi phát nội dung nghe nhìn.

Sử dụng trình cung cấp lựa chọn mặc định

Đối với chế độ thiết lập cơ bản sử dụng ứng dụng nhận Cast mặc định, hãy thêm DefaultCastOptionsProvider vào tệp AndroidManifest.xml của ứng dụng:

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

Tạo trình cung cấp lựa chọn tuỳ chỉnh

Đối với các cấu hình nâng cao hơn, chẳng hạn như đặt mã ứng dụng nhận tuỳ chỉnh, bạn cần tạo OptionsProvider của riêng mình.

1. Khai báo trình cung cấp trong tệp kê khai

Trước tiên, hãy khai báo trình cung cấp tuỳ chỉnh trong AndroidManifest.xml. Hãy nhớ sử dụng tên lớp đủ điều kiện.

<application>
  <meta-data
    android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
    android:value="path.to.your.class.MyCustomCastOptionsProvider" />
</application>

2. Triển khai giao diện OptionsProvider

Tiếp theo, hãy tạo một lớp triển khai giao diện OptionsProvider. Trong lớp này, bạn phải ghi đè getCastOptions() để trả về một thực thể CastOptions. Lớp OptionsProvider tuỳ chỉnh là nơi bạn định cấu hình phiên truyền, ví dụ: bằng cách đặt mã ứng dụng nhận tuỳ chỉnh.

Để biết thêm thông tin, hãy xem 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;
  }
}