קישור העומק של YouTube Mobile Live מאפשר לאפליקציות ל-Android להתחיל שידור חי ב-YouTube ישירות ממכשיר נייד. האפליקציה צריכה לספק רק נקודת כניסה, כמו כפתור שהמשתמש יכול ללחוץ עליו, שמתחילה את התהליך של Mobile Live באמצעות מנגנון ה-Intent של Android.
דוגמה
התהליך הזה מציג את חוויית המשתמש באפליקציה שמקשרת בקישור עומק לאפליקציית YouTube, שבה המשתמש נוחת במסך ההגדרה של סטרימינג בשידור חי בנייד.
- קודם כל, המשתמש מגדיר את השידור, כולל השם, מצב הפרטיות ואפשרויות אחרות.
- לאחר מכן, המשתמש עובר למסך Thumbnail Photo כדי להגדיר תמונה ממוזערת לשידור.
- בשלב האחרון, המשתמש מתחיל את השידור החי ומשדר את התצוגה מהמצלמה הקדמית או האחורית.

דרישות לגבי מכשירים
כדי לתמוך כמו שצריך בסטרימינג בשידור חי ב-YouTube ובקישור העומק לשידור חי בנייד, מכשירי Android צריכים לעמוד בדרישות הבאות:
- גרסת Android: Marshmallow (API 23) ואילך
- מצלמה: לפחות מצלמה אחת שיכולה להקליט באיכות 720p ובקצב של לפחות 30Hz
- מיקרופון: מיקרופון מובנה
- מקודד אודיו: מקודד אודיו עם שיפור מהירות באמצעות חומרה, שיכול לקודד אודיו מונו PCM של 8 ביט ל-AAC בתדר 44.1KHz או יותר
- מקודד וידאו: מקודד וידאו עם שיפור מהירות באמצעות חומרה, שיכול לקודד וידאו גולמי באיכות 720P ל-H.264/AVC בתדר 30Hz או יותר
- אפליקציית YouTube מותקנת: גרסה 13.02 ואילך
מפרט של Mobile Live Intent
כדי לקשר לתהליך הסטרימינג בשידור חי ב-YouTube Mobile, אפליקציית Android מפעילה Intent. ה-Intent מפעיל את תהליך הסטרימינג בשידור חי על ידי הפעלת Activity באפליקציית YouTube.
פורמט Intent
ה-Intent של שידור חי בנייד משתמש במחרוזת Action מותאמת אישית כדי לנווט לפעילות של יצירת שידור חי באפליקציית YouTube. הוא גם מציין את שם החבילה של אפליקציית YouTube לנייד.
- פעולה:
"
com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" - חבילה:
"
com.google.android.youtube"
Intent extras
תהליך ההגדרה של אפליקציית YouTube מטפל בהגדרת השידור. התוספות הבאות של Intent מגדירות פרמטרים שמשויכים לשידור החי:
| פרמטרים | |
|---|---|
| Intent.EXTRA_REFERRER | נדרש. הפרמטר הזה מציין URI שמייצג את האפליקציה שמפעילה את ה-Activity של השידור החי. הערך הזה צריך להיות בפורמט android-app: scheme עם שם חבילה. הערך מאפשר שיוך (Attribution) וחשבונאות מדויקים. |
| Intent.EXTRA_SUBJECT | אופציונלי. הפרמטר הזה מספק תיאור טקסט של השידור החי. הוא ממוקם בחבילת התוספות של Intent בתור מחרוזת. אפשר להשתמש בערך כדי להוסיף לשידור הערה עם מסר ממותג, כמו "השידור החי מועבר מ-DEVICE". |
הפעלת תהליך הסטרימינג בשידור חי
כדי לוודא שהמכשיר תואם ולהתחיל את הפעילות בזמן אמת בנייד מאפליקציית Android, צריך לבצע את שני השלבים הבאים.
שלב 1: בודקים אם יש תמיכה
הלקוח צריך קודם לוודא שאפשר להפעיל את Mobile Live Intent. לשם כך, צריך לוודא שאפליקציית YouTube מותקנת במכשיר ושהגרסה של אפליקציית YouTube תומכת בסטרימינג בשידור חי. בדוגמת הקוד הבאה מוגדרות שתי שיטות לעשות את זה:
השיטה
canResolveMobileLiveIntentמאמתת שהמכשיר תומך ב-Mobile Live Intent.ה-
validateMobileLiveIntentקורא ל-methodcanResolveMobileLiveIntentבהקשר של הצהרת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> resolveInfo =
pm.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return resolveInfo != null && !resolveInfo.isEmpty();
}
private void validateMobileLiveIntent(Context context) {
if (canResolveMobileLiveIntent(context)) {
// Launch the livestream Activity
} else {
// Prompt user to install or upgrade the YouTube app
}
}
באפליקציות שמטרגטות ל-Android 11 (רמת API 30) ומעלה, צריך להצהיר על דרישות הרשאות הגישה לחבילה בקובץ AndroidManifest.xml כדי ש-PackageManager יוכל לשלוח שאילתות לאפליקציית YouTube:
<queries>
<package android:name="com.google.android.youtube" />
<intent>
<action android:name="com.google.android.youtube.intent.action.CREATE_LIVE_STREAM" />
</intent>
</queries>
שלב 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);
}