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

SDK này không được dùng nữa. Ứng dụng không còn được hỗ trợ hoặc duy trì bởi YouTube. Vui lòng sử dụng API Trình phát IFrame của YouTube.

Liên kết sâu 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 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 thông qua cơ chế Android Intent.

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 đến ứng dụng YouTube, tại đây, người dùng sẽ được chuyển đến màn hình Thiết lập sự kiện phát trực tiếp từ thiết bị di động.

  1. Đầu tiên, người dùng định cấu hình luồng, đặt tiêu đề, chế độ riêng tư và các tuỳ chọn khác cho luồng.
  2. Sau đó, người dùng chuyển đến màn hình Ảnh thu nhỏ để đặt mộ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à truyền hình ảnh từ camera trước hoặc sau.

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

Các thiết bị Android phải đáp ứng những yêu cầu sau đây để 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 Phát trực tiếp từ 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ó khả năng quay video 720p ở tốc độ tối thiểu 30 Hz
  • Micrô: Micrô trên máy tính
  • Bộ mã hoá âm thanh: Bộ mã hoá âm thanh được tăng tốc phần cứng có khả năng mã hoá âm thanh đơn âm PCM 8 bit thành AAC ở tốc độ 44,1KHz trở lên
  • Bộ mã hoá video: Bộ mã hoá video được tăng tốc phần cứng có khả năng mã hoá video thô 720P thành H.264/AVC ở tần số 30Hz trở lên
  • Ứng dụng YouTube đã cài đặt:Phiên bản 13.02 trở lên

Thông số kỹ thuật của Mục đích trực tiếp trên thiết bị di động

Để liên kết đến luồng 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 sẽ bắt đầu quá 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 trực tiếp trên thiết bị di động sử dụng chuỗi Action tuỳ chỉnh để điều hướng đến Hoạt động tạo trực tiếp trong ứng dụng YouTube. Thông tin 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. Tham số này chỉ định một URI đại diện cho ứng dụng chạy Hoạt động phát trực tiếp. Giá trị này phải 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. Thông 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. Chuỗi này được đặt trong gói phần bổ sung Ý định dưới dạng Chuỗi. Bạn có thể sử dụng giá trị này để chú thích sự kiện phát trực tiếp bằng thông báo có thương hiệu, chẳng hạn như "Phát trực tiếp từ THIẾT BỊ".

Bắt đầu quy trình phát trực tiếp

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

Trước tiên, khách hàng của bạn phải xác nhận rằng Mobile Live Intent có thể chạy được 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 có hỗ trợ phát trực tiếp. Mã mẫu sau đây xác định hai phương thức để làm việc đó:

  • Phương thức canResolveMobileLiveIntent xác minh rằng thiết bị hỗ trợ Mobile Live Intent.
  • 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ợ Intent, thì thiết bị có thể chạy quy trình phát trực tiếp.
    • Nếu thiết bị không hỗ trợ Intent 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 = 
    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);
}