הפעלת סטרימינג בשידור חי ב-YouTube במכשירי Android

ערכת ה-SDK הזו הוצאה משימוש באופן מלא. הוא לא נתמך או מתוחזק יותר על ידי YouTube. צריך ללחוץ על YouTube iFrame Player API.

קישור העומק של 'YouTube לנייד' מאפשר לאפליקציות ל-Android להתחיל שידור חי ב-YouTube ישירות ממכשיר נייד. אפליקציה צריכה לספק רק נקודת כניסה, כמו לחצן שהמשתמש יכול ללחוץ עליו, שמפעיל את תהליך השידור החי בנייד באמצעות מנגנון Android Intent.

דוגמה

התהליך הזה מציג את חוויית המשתמש באפליקציה שמקושרת בקישורי עומק לאפליקציית YouTube, ו שהמשתמש מגיע למסך 'הגדרת סטרימינג ממכשיר נייד'.

  1. בשלב הראשון, המשתמש מגדיר את הסטרימינג ומגדיר את השם, מצב הפרטיות ואפשרויות אחרות של סטרימינג.
  2. לאחר מכן המשתמש מנווט למסך של תמונה ממוזערת כדי להגדיר תמונה ממוזערת עבור הסטרימינג.
  3. בשלב האחרון, המשתמש מתחיל את השידור החי ומשדר את השידור מהמצלמה הקדמית או האחורית.

דרישות מכשיר

כדי לתמוך בצורה תקינה בסטרימינג בשידור חי ב-YouTube ובקישור העומק בשידור חי מהנייד, מכשירי Android צריכים לעמוד בדרישות הבאות:

  • גרסת Android: Marshmallow (API 23) ואילך
  • מצלמה: מצלמה אחת לפחות שיכולה להקליט 720p לפחות 30Hz
  • מיקרופון: מיקרופון מובנה
  • מקודד אודיו: מקודד אודיו עם שיפור מהירות באמצעות חומרה שיכול לקודד אודיו מונו מסוג PCM של 8 ביט ל-AAC בקצב של 44.1KHz או יותר
  • מקודד וידאו: מקודד וידאו עם שיפור מהירות באמצעות חומרה שיכול לקודד וידאו גולמי ב-720P ל-H.264/AVC ב-30Hz או יותר
  • אפליקציית YouTube מותקנת: גרסה 13.02 ואילך

המפרט של Intent בשידור חי בנייד

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

פורמט של כוונת רכישה

התכונה 'Intent בשידור חי בנייד' משתמשת במחרוזת Action מותאמת אישית כדי לנווט לפעילות היצירה בשידור חי באפליקציית YouTube. מצוין בו גם שם החבילה של אפליקציית YouTube לנייד.

  • פעולה: "com.google.android.youtube.intent.action.CREATE_LIVE_STREAM"
  • חבילה: "com.google.android.youtube"

תוספות כוונה

תהליך ההגדרה של אפליקציית YouTube מטפל בתצורת השידור. התוספות הבאות של Intent מגדירים פרמטרים שמשויכים לשידור החי:

פרמטרים
Intent.EXTRA_REFERRER נדרש. הפרמטר הזה מציין URI שמייצג את האפליקציה שמפעילה את פעילות הסטרימינג בשידור חי. הערך הזה צריך להיות בפורמט android-app: scheme עם שם חבילה. הערך מאפשר שיוך וחשבונאות מדויקים.
Intent.EXTRA_SUBJECT אופציונלי. הפרמטר הזה מספק טקסט לתיאור של השידור החי. הוא ממוקם בחבילת התוספות של Intent כמחרוזת. ניתן להשתמש בערך הזה כדי להוסיף הערות לשידור עם מסר ממותג, למשל 'שודר בשידור חי מ-DEVICE'.

הפעלת התהליך של סטרימינג בשידור חי

שלב 1: בודקים אם יש תמיכה

הלקוח צריך קודם לוודא שניתן להפעיל את 'Intent בשידור חי בנייד'. לשם כך, עליו לאמת שאפליקציית YouTube מותקנת במכשיר ושהגרסה של אפליקציית YouTube תומכת בסטרימינג בשידור חי. דוגמת הקוד הבאה מגדירה שתי שיטות לעשות זאת:

  • השיטה canResolveMobileLiveIntent מאמתת שהמכשיר תומך ב-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);
}