Triển khai tính năng phát trực tiếp trên YouTube trên thiết bị Android

Đường liên kết sâu của YouTube dành cho thiết bị di động cho phép các ứng dụng Android bắt đầu một sự kiện phát trực tiếp trên YouTube ngay từ thiết bị di động. Ứng dụng chỉ cần cung cấp một điểm truy cập, chẳng hạn như nút mà người dùng có thể nhấp vào, để bắt đầu quy trình Phát trực tiếp trên thiết bị di động bằng cơ chế Ý định của Android.

Ví dụ

Quy trình này cho thấy trải nghiệm người dùng đối với một ứng dụng liên kết sâu vào ứng dụng YouTube, trong đó người dùng sẽ chuyển đến màn hình Thiết lập sự kiện phát trực tiếp trên thiết bị di động.

  1. Trước tiên, người dùng định cấu hình sự kiện phát trực tiếp, đặt tiêu đề, chế độ quyền riêng tư và các lựa chọn khác cho sự kiện phát trực tiếp.
  2. Sau đó, người dùng chuyển đến màn hình Ảnh thu nhỏ để đặt hình thu nhỏ cho sự kiện phát trực tiếp.
  3. Cuối cùng, người dùng bắt đầu sự kiện phát trực tiếp và phát sóng khung hiển thị từ camera trước hoặc camera sau.

Màn hình thiết lập sự kiện phát trực tiếp trên thiết bị di động Màn hình ảnh thu nhỏ Màn hình phát trực tiếp trên thiết bị di động

Yêu cầu về thiết bị

Thiết bị Android phải đáp ứng các yêu cầu sau để hỗ trợ đúng cách tính năng phát trực tiếp trên YouTube và đường liên kết sâu Mobile Live:

  • Bản phát hành Android: Marshmallow (API 23) trở lên
  • Camera: Ít nhất một camera có khả năng quay video 720p ở tần số tối thiểu 30 Hz
  • Micrô: Micrô tích hợp
  • Bộ mã hoá âm thanh: Bộ mã hoá âm thanh tăng tốc phần cứng có khả năng mã hoá âm thanh đơn âm PCM 8 bit sang AAC ở tần số 44,1 KHz trở lên
  • Bộ mã hoá video: Bộ mã hoá video tăng tốc phần cứng có khả năng mã hoá video thô 720P sang H.264/AVC ở tần số 30 Hz trở lên
  • Đã cài đặt ứng dụng YouTube: Phiên bản 13.02 trở lên

Quy cách về ý định trực tiếp trên thiết bị di động

Để liên kết với quy trình phát trực tiếp trên YouTube dành cho thiết bị di động, ứng dụng Android của bạn sẽ khởi chạy một Ý định. Ý định này bắt đầu quy trình phát trực tiếp bằng cách bắt đầu một Hoạt động trong ứng dụng YouTube.

Định dạng ý định

Ý định phát trực tiếp trên thiết bị di động sử dụng một chuỗi Action tuỳ chỉnh để chuyển đến Hoạt động tạo sự kiện phát trực tiếp trong ứng dụng YouTube. Ý định này cũng chỉ định tên gói cho ứng dụng YouTube dành cho thiết bị di động.

  • Hành động: "com.google.android.youtube.intent.action.CREATE_LIVE_STREAM"
  • Gói: "com.google.android.youtube"

Dữ liệu bổ sung về ý định

Quy trình thiết lập ứng dụng YouTube sẽ xử lý cấu hình luồng. Các thành phần bổ sung sau đây của Ý định sẽ đặt các tham số liên quan đến sự kiện phát trực tiếp:

Tham số
Intent.EXTRA_REFERRER Bắt buộc. Tham số này chỉ định một URI đại diện cho ứng dụng khởi chạy Hoạt động phát trực tiếp. Giá trị này phải tuân theo định dạng android-app: scheme có tên gói. Giá trị này giúp phân bổ và hạch toán chính xác.
Intent.EXTRA_SUBJECT Không bắt buộc. Tham số này cung cấp nội dung mô tả bằng văn bản về sự kiện phát trực tiếp. Mã này được đặt trong gói bổ sung Ý định dưới dạng Chuỗi. Bạn có thể dùng giá trị này để chú thích cho sự kiện phát trực tiếp bằng một thông điệp của thương hiệu, chẳng hạn như "Phát trực tiếp từ THIẾT BỊ".

Khởi chạy quy trình phát trực tiếp

Hoàn tất hai bước sau để xác minh khả năng tương thích của thiết bị và bắt đầu Hoạt động trực tiếp trên thiết bị di động từ ứng dụng Android của bạn.

Bước 1: Kiểm tra khả năng hỗ trợ

Trước tiên, ứng dụng khách của bạn phải xác nhận rằng có thể khởi chạy Mobile Live Intent bằng cách xác minh rằng ứng dụng YouTube đã được cài đặt trên thiết bị và phiên bản ứng dụng YouTube hỗ trợ tính năng phát trực tiếp. Mã mẫu sau đây xác định hai phương thức để thực hiện việc đó:

  • Phương thức canResolveMobileLiveIntent xác minh rằng thiết bị hỗ trợ Ý định trực tiếp trên thiết bị di động.

  • validateMobileLiveIntent gọi phương thức canResolveMobileLiveIntent trong ngữ cảnh của câu lệnh if-else.

    • Nếu thiết bị hỗ trợ Ý định, thì thiết bị có thể khởi chạy quy trình phát trực tiếp.
    • Nếu thiết bị không hỗ trợ Ý định, thì thiết bị có thể nhắc người dùng cài đặt hoặc nâng cấp ứng dụng YouTube.
private boolean canResolveMobileLiveIntent(Context context) {
  Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
    .setPackage("com.google.android.youtube");
  PackageManager pm = context.getPackageManager();
  List<ResolveInfo> resolveInfo =
    pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  return resolveInfo != null && !resolveInfo.isEmpty();
}


private void validateMobileLiveIntent(Context context) {
  if (canResolveMobileLiveIntent(context)) {
    // Launch the livestream Activity
  } else {
    // Prompt user to install or upgrade the YouTube app
  }
}

Các ứng dụng nhắm đến Android 11 (cấp độ API 30) trở lên phải khai báo các yêu cầu về chế độ hiển thị gói trong tệp AndroidManifest.xml để PackageManager có thể truy vấn ứng dụng YouTube:

<queries>
  <package android:name="com.google.android.youtube" />
  <intent>
    <action android:name="com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" />
  </intent>
</queries>

Bước 2: Chạy hoạt động phát trực tiếp

Để bắt đầu quy trình phát trực tiếp, ứng dụng khách của bạn sẽ tạo và khởi chạy một Ý định như trong mã mẫu sau:

private Intent createMobileLiveIntent(Context context, String description) {
  Intent intent = new Intent("com.google.android.youtube.intent.action.CREATE_LIVE_STREAM")
      .setPackage("com.google.android.youtube");
  Uri referrer = new Uri.Builder()
      .scheme("android-app")
      .appendPath(context.getPackageName())
      .build();

  intent.putExtra(Intent.EXTRA_REFERRER, referrer);
  if (!TextUtils.isEmpty(description)) {
    intent.putExtra(Intent.EXTRA_SUBJECT, description);
  }
  return intent;
}


private void startMobileLive(Context context) {
  Intent mobileLiveIntent = createMobileLiveIntent(context, "Streaming via ...");
  startActivity(mobileLiveIntent);
}