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 đã ngừng hoạt động hoàn toàn. Ứng dụng này không được YouTube hỗ trợ hoặc duy trì nữa. Thay vào đó, vui lòng sử dụng API Trình phát iFrame của YouTube.

Liên kết sâu của YouTube Mobile Live cho phép ứng dụng Android bắt đầu luồng trực tiếp trên YouTube trực tiếp 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 luồng Mobile Live thông qua cơ chế Android Intent.

Ví dụ:

Quy trình này cho biết trải nghiệm người dùng đối với một ứng dụng có liên kết sâu đến ứng dụng YouTube, nơi người dùng được 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. Đầu tiên, người dùng định cấu hình luồng, đặt tiêu đề, chế độ bảo mật và các tùy chọn luồng khác.
  2. Sau đó, người dùng di chuyển đến màn hình Hình thu nhỏ để đặt hình thu nhỏ cho luồng.
  3. Cuối cùng, người dùng bắt đầu phát trực tiếp và phát sóng chế độ xem 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ợ việc phát trực tiếp trên YouTube đúng cách và liên kết sâu của tính năng Mobile Live:

  • 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 720p ở ít nhất 30Hz
  • Micrô: Micrô tích hợp
  • Bộ mã hóa âm thanh: Bộ mã hóa âm thanh tăng tốc phần cứng có khả năng mã hóa âm thanh đơn âm PCM 8 bit thành AAC ở 44,1KHz trở lên
  • Bộ mã hóa video: Bộ mã hóa video tăng tốc phần cứng có khả năng mã hóa video thô 720P thành H.264/AVC ở 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 Ý đị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ẽ chạy một Ý định. Ý định 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 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. Ý đị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 hàng: "com.google.android.youtube"

Ý định bổ sung

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

Thông số
Ý định.EXTRA_REFERRER Required. 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 kèm theo tên gói. Giá trị cho phép phân bổ và tính toán chính xác.
Ý định.EXTRA_SUBJECT Optional . Thông số này cung cấp mô tả bằng văn bản của luồng trực tiếp. Phương thức này được đặt trong gói dữ liệu bổ sung Intent dưới dạng String. Bạn có thể dùng giá trị này để chú thích cho sự kiện phát trực tiếp, qua thông báo gắn thương hiệu, chẳng hạn như "Phát trực tiếp từ DEVICE".

Khởi chạy luồng trực tiếp

Bước 1: Kiểm tra hỗ trợ

Trước tiên, khách hàng của bạn phải xác nhận rằng có thể khởi 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 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ị có 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 một câu lệnh if-else.
    • Nếu thiết bị hỗ trợ Ý định thì thiết bị có thể chạy luồng luồng 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 = 
    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: Khởi 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);
}