การเริ่มต้นสตรีมแบบสดบน YouTube บนอุปกรณ์ Android

เราเลิกใช้งาน SDK นี้โดยสมบูรณ์แล้ว จะไม่ได้รับการสนับสนุนหรือบำรุงรักษาโดย YouTube โปรดใช้ YouTube iFrame Player API แทน

Deep Link ของ YouTube Mobile Live ทำให้แอปพลิเคชัน Android สามารถเริ่มสตรีมแบบสดบน YouTube จากอุปกรณ์เคลื่อนที่ได้โดยตรง แอปเพียงแต่ต้องระบุจุดแรกเข้า เช่น ปุ่มที่ผู้ใช้สามารถคลิกได้ ซึ่งเริ่มต้นการสตรีมแบบสดบนอุปกรณ์เคลื่อนที่ผ่านกลไก Intent ของ Android

ตัวอย่าง

ขั้นตอนนี้จะแสดงประสบการณ์ของผู้ใช้สำหรับแอปที่มีลิงก์ในรายละเอียดไปยังแอปพลิเคชัน YouTube เมื่อผู้ใช้เข้าสู่หน้าจอการตั้งค่าสตรีมแบบสดบนอุปกรณ์เคลื่อนที่

  1. ขั้นแรก ให้ผู้ใช้กำหนดค่าสตรีม กำหนดชื่อ โหมดความเป็นส่วนตัว และตัวเลือกสตรีมอื่นๆ
  2. จากนั้นไปที่หน้าจอภาพขนาดย่อเพื่อตั้งค่าภาพขนาดย่อสำหรับสตรีม
  3. สุดท้าย ผู้ใช้เริ่มสตรีมแบบสดและเผยแพร่มุมมองจากกล้องหน้าหรือกล้องหลัง

ข้อกำหนดของอุปกรณ์

อุปกรณ์ Android ต้องเป็นไปตามข้อกำหนดต่อไปนี้จึงจะรองรับสตรีมมิงแบบสดของ YouTube และ Deep Link สำหรับ Mobile Live ได้อย่างถูกต้อง

  • รุ่นสำหรับ Android: Marshmallow (API 23) ขึ้นไป
  • กล้อง: กล้องอย่างน้อย 1 ตัวที่บันทึกได้ 720p อย่างน้อย 30 Hz
  • ไมโครโฟน: เริ่มต้นใช้งานไมโครโฟน
  • โปรแกรมเปลี่ยนไฟล์เสียง: โปรแกรมเปลี่ยนไฟล์สำหรับเสียงที่มีการเร่งด้วยฮาร์ดแวร์สามารถเข้ารหัสเสียง PCM แบบโมโน 8 บิตเป็น AAC ที่ 44.1 KHz หรือดีกว่า
  • โปรแกรมเปลี่ยนไฟล์วิดีโอ: โปรแกรมเปลี่ยนไฟล์วิดีโอที่เร่งการแสดงผลด้วยฮาร์ดแวร์ซึ่งสามารถเข้ารหัสวิดีโอดิบ 720P เป็น H.264/AVC ที่ 30Hz หรือดีกว่า
  • แอป YouTube ที่ติดตั้งไว้: เวอร์ชัน 13.02 ขึ้นไป

ข้อกำหนดเกี่ยวกับ Mobile Live Intent

หากต้องการลิงก์เข้ากับขั้นตอนการสตรีมแบบสดของ YouTube สำหรับมือถือ แอป Android ของคุณจะเปิดใช้ Intent Intent เริ่มขั้นตอนสตรีมมิงแบบสดโดยการเริ่ม Activity ในแอปพลิเคชัน YouTube

รูปแบบ Intent

Mobile Live Intent ใช้สตริง Action ที่กำหนดเองเพื่อไปยังกิจกรรมการสร้างสรรค์แบบสดภายในแอป YouTube รวมถึงระบุชื่อแพ็กเกจสำหรับแอป YouTube บนอุปกรณ์เคลื่อนที่ด้วย

Intent เพิ่มเติม

ขั้นตอนการตั้งค่าแอปพลิเคชัน YouTube จะจัดการการกำหนดค่าสตรีม Intent เพิ่มเติมต่อไปนี้จะกำหนดพารามิเตอร์ที่เชื่อมโยงกับสตรีมแบบสด

พารามิเตอร์
Intent.EXTRA_REFERRER ต้องระบุ พารามิเตอร์นี้จะระบุ URI ที่แสดงถึงแอปพลิเคชันที่เปิดใช้งานกิจกรรมสตรีมมิงแบบสด ค่านี้ต้องเป็นไปตามรูปแบบ android-app: scheme พร้อมด้วยชื่อแพ็กเกจ ค่านี้ทำให้เกิดการระบุแหล่งที่มาและการทำบัญชีที่แม่นยำ
Intent.EXTRA_SUBJECT ไม่บังคับ พารามิเตอร์นี้จะแสดงข้อความอธิบายสตรีมแบบสด โดยจะวางอยู่ในแพ็กเกจส่วนเสริมของ Intent เป็นสตริง ค่านี้สามารถใช้เพื่อเขียนคำอธิบายประกอบสตรีมด้วยข้อความที่มีแบรนด์ เช่น "สตรีมสดจาก DEVICE"

การเปิดตัวขั้นตอนการสตรีมแบบสด

ขั้นตอนที่ 1: ตรวจหาการสนับสนุน

ก่อนอื่น ลูกค้าควรยืนยันก่อนว่าสามารถเปิด Mobile Live Intent ได้โดยยืนยันว่าติดตั้งแอป YouTube ในอุปกรณ์แล้ว และเวอร์ชันแอป YouTube รองรับสตรีมมิงแบบสด ตัวอย่างโค้ดต่อไปนี้ระบุ 2 วิธีในการดำเนินการดังกล่าว

  • เมธอด canResolveMobileLiveIntent จะยืนยันว่าอุปกรณ์รองรับ Mobile Live Intent
  • validateMobileLiveIntent เรียกใช้เมธอด canResolveMobileLiveIntent ในบริบทของคำสั่ง if-else
    • หากอุปกรณ์รองรับ Intent อุปกรณ์อาจเปิดโฟลว์สตรีมแบบสดได้
    • หากอุปกรณ์ไม่รองรับ Intent อาจแสดงข้อความแจ้งให้ผู้ใช้ติดตั้งหรืออัปเกรดแอป 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
  }
}

ขั้นตอนที่ 2: เปิดกิจกรรมสตรีมแบบสด

หากต้องการเริ่มขั้นตอนการสตรีมแบบสด แอปไคลเอ็นต์จะสร้างและเปิด Intent ดังที่แสดงในตัวอย่างโค้ดต่อไปนี้

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