Deep Link ของ YouTube Mobile Live ช่วยให้แอปพลิเคชัน Android เริ่มสตรีมแบบสดของ YouTube ได้โดยตรงจากอุปกรณ์เคลื่อนที่ แอปเพียงต้องระบุจุดแรกเข้า เช่น ปุ่มที่ผู้ใช้คลิกได้ ซึ่งจะเริ่มต้นขั้นตอนการถ่ายทอดสดบนอุปกรณ์เคลื่อนที่ผ่านกลไก Intent ของ Android
ตัวอย่าง
ขั้นตอนนี้จะแสดงประสบการณ์ของผู้ใช้สำหรับแอปที่มีลิงก์ในรายละเอียดไปยังแอปพลิเคชัน YouTube เมื่อผู้ใช้เข้าสู่หน้าจอการตั้งค่าสตรีมแบบสดบนอุปกรณ์เคลื่อนที่
- ขั้นแรก ผู้ใช้จะกำหนดค่าสตรีม โดยตั้งชื่อ โหมดความเป็นส่วนตัว และตัวเลือกอื่นๆ ของสตรีม
- จากนั้นไปที่หน้าจอภาพขนาดย่อเพื่อตั้งค่าภาพขนาดย่อสำหรับสตรีม
- สุดท้าย ผู้ใช้เริ่มสตรีมแบบสดและเผยแพร่มุมมองจากกล้องหน้าหรือกล้องหลัง
ข้อกำหนดของอุปกรณ์
อุปกรณ์ Android ต้องเป็นไปตามข้อกำหนดต่อไปนี้จึงจะรองรับสตรีมมิงแบบสดของ YouTube และ Deep Link ของไลฟ์บนอุปกรณ์เคลื่อนที่ได้อย่างถูกต้อง
- รุ่น Android: Marshmallow (API 23) ขึ้นไป
- กล้อง: กล้องอย่างน้อย 1 ตัวที่บันทึก 720p ที่ 30Hz เป็นอย่างน้อย
- ไมโครโฟน: ไมโครโฟนในตัว
- โปรแกรมเข้ารหัสเสียง: โปรแกรมเข้ารหัสเสียงที่เร่งด้วยฮาร์ดแวร์ซึ่งเข้ารหัสเสียง PCM โมโน 8 บิตเป็น AAC ที่ 44.1 KHz ขึ้นไปได้
- โปรแกรมเปลี่ยนไฟล์วิดีโอ: โปรแกรมเปลี่ยนไฟล์วิดีโอที่เร่งการแสดงผลด้วยฮาร์ดแวร์ซึ่งสามารถเข้ารหัสวิดีโอดิบ 720P เป็น H.264/AVC ที่ 30Hz หรือดีกว่า
- แอป YouTube ที่ติดตั้ง: เวอร์ชัน 13.02 ขึ้นไป
ข้อกําหนดของ Intent สําหรับการถ่ายทอดสดบนอุปกรณ์เคลื่อนที่
หากต้องการลิงก์กับขั้นตอนการสตรีมแบบสดของ YouTube สำหรับมือถือ แอป Android ของคุณจะเปิดIntent Intent จะเริ่มต้นกระบวนการสตรีมมิงแบบสดด้วยการเปิดกิจกรรมในแอปพลิเคชัน YouTube
รูปแบบ Intent
Intent ของ "การถ่ายทอดสดบนอุปกรณ์เคลื่อนที่" ใช้สตริง Action
ที่กําหนดเองเพื่อไปยังกิจกรรมการสร้างแบบสดภายในแอป YouTube และยังระบุชื่อแพ็กเกจสําหรับแอป YouTube บนอุปกรณ์เคลื่อนที่ด้วย
- การดำเนินการ: "
com.google.android.youtube.intent.action.CREATE_LIVE_STREAM
" - พัสดุ: "
com.google.android.youtube
"
Intent เพิ่มเติม
ขั้นตอนการตั้งค่าแอปพลิเคชัน YouTube จะจัดการการกำหนดค่าสตรีม ข้อมูลเพิ่มเติมของ Intent ต่อไปนี้จะตั้งค่าพารามิเตอร์ที่เชื่อมโยงกับสตรีมแบบสด
Params | |
---|---|
Intent.EXTRA_REFERRER | ต้องระบุ พารามิเตอร์นี้ระบุ URI ที่แสดงแอปพลิเคชันที่เปิดใช้งานกิจกรรมสตรีมมิงแบบสด ค่านี้ต้องเป็นไปตามรูปแบบ android-app: scheme ที่มีชื่อแพ็กเกจ ค่านี้ช่วยให้การระบุแหล่งที่มาและการบัญชีมีความแม่นยำ |
Intent.EXTRA_SUBJECT | ไม่บังคับ พารามิเตอร์นี้จะแสดงคำอธิบายแบบข้อความของสตรีมแบบสด โดยจะอยู่ในแบนเดิลข้อมูลเพิ่มเติมของ Intent เป็นสตริง ค่านี้สามารถใช้เพื่อเขียนคำอธิบายประกอบสตรีมด้วยข้อความที่มีแบรนด์ เช่น "สตรีมสดจาก DEVICE" |
การเปิดตัวขั้นตอนการสตรีมแบบสด
ขั้นตอนที่ 1: ตรวจหาการสนับสนุน
ก่อนอื่นลูกค้าควรยืนยันว่าสามารถเปิดใช้ 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(); ListresolveInfo = 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); }