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 đến sự kiện phát trực tiếp trên YouTube dành cho thiết bị di động cho phép các ứng dụng Android bắt đầu 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ư một 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 thông qua 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 có đường liên kết sâu đến ứng dụng YouTube, nơi người dùng 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 luồng, đặt tiêu đề, chế độ quyền riêng tư và các tuỳ chọn khác cho luồng.
  2. Sau đó, người dùng sẽ chuyển đến màn hình Ảnh thu nhỏ để đặt hình thu nhỏ cho luồng.
  3. Cuối cùng, người dùng bắt đầu sự kiện phát trực tiếp và truyền hình ảnh từ camera trước hoặc sau.

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 đến sự kiện phát trực tiếp trên thiết bị di động:

  • Bản phát hành Android: Marshmallow (API 23) trở lên
  • Máy ảnh: Ít nhất một máy ảnh có thể quay video 720p ở tốc độ khung hình tối thiểu là 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ó thể mã hoá âm thanh đơn âm PCM 8 bit thành AAC ở tốc độ 44,1 KHz trở lên
  • Bộ mã hoá video: Bộ mã hoá video tăng tốc phần cứng có thể mã hoá video thô 720P thành H.264/AVC ở tốc độ 30Hz trở lên
  • Ứng dụng YouTube đã cài đặt: Phiên bản 13.02 trở lên

Quy cách về Ý định phát 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 quá trình phát trực tiếp bằng cách khởi động 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"

Phần bổ sung ý định

Quy trình thiết lập ứng dụng YouTube xử lý cấu hình luồng. Các tham số bổ sung ý định sau đây được liên kết với luồng phát trực tiếp:

Tham số
Intent.EXTRA_REFERRER Bắt buộc. Thông 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 với tên gói. Giá trị này giúp phân bổ và tính 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. Giá trị 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 luồng bằng thông điệp mang thương hiệu, chẳng hạn như "Phát trực tiếp từ DEVICE".

Chạy quy trình phát trực tiếp

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

Trước tiên, ứng dụng của bạn phải xác nhận rằng có thể chạy Ý định phát trực tiếp trên thiết bị di động 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 phát 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ể chạy quy trình phát trực tiếp.
    • Nếu không hỗ trợ Ý định, 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 = 
    pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
  return resolveInfo != null && !resolveInfo.isEmpty();
}


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

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