بدء بث YouTube المباشر على أجهزة Android

يتيح رابط YouTube Mobile Live لتطبيقات Android بدء بث مباشر على YouTube مباشرةً من جهاز جوّال. ما على التطبيق سوى توفير نقطة دخول، مثل زر يمكن للمستخدم النقر عليه لبدء مسار البث المباشر على الأجهزة الجوّالة من خلال آلية Android Intent.

مثال

يعرض هذا المسار تجربة المستخدم لتطبيق يتضمّن روابط لصفحات معيّنة في تطبيق YouTube، حيث يصل المستخدم إلى شاشة إعداد البث المباشر على الأجهزة الجوّالة.

  1. أولاً، يضبط المستخدم البث المباشر، ويحدّد العنوان ووضع الخصوصية وخيارات البث الأخرى.
  2. بعد ذلك، ينتقل المستخدم إلى شاشة "صورة الصورة المصغّرة" لضبط صورة مصغّرة للبث.
  3. وأخيرًا، يبدأ المستخدم البث المباشر ويبث العرض من الكاميرا الأمامية أو الخلفية.

متطلبات الجهاز

يجب أن تستوفي أجهزة Android المتطلبات التالية لتتوافق بشكلٍ صحيح مع البث المباشر على YouTube والرابط لموضع معين في البث المباشر على الجوّال:

  • إصدار Android: Marshmallow (المستوى 23 لواجهة برمجة التطبيقات) أو إصدار أحدث
  • الكاميرا: كاميرا واحدة على الأقل قادرة على تسجيل فيديوهات بدقة 720p بمعدّل تكرار 30 لقطة في الثانية على الأقل
  • الميكروفون: الميكروفون المدمج
  • برنامج ترميز الصوت: برنامج ترميز صوت مزوّد بميزة تسريع الأجهزة وقادِر على ترميز صوت أحادي بتنسيق PCM بسعة 8 بت إلى تنسيق AAC بمعدّل 44.1 كيلوهرتز أو أعلى
  • برنامج ترميز الفيديو: برنامج ترميز فيديو مسرّع للأجهزة قادر على ترميز فيديو 720P غير المُعدّ للبث إلى H.264/AVC بمعدّل 30 هرتز أو أفضل
  • تطبيق YouTube مثبّت: الإصدار 13.02 أو إصدار أحدث

مواصفات Mobile Live Intent

للربط بمسار البث المباشر على YouTube للأجهزة الجوّالة، يطلق تطبيق Android Intent. يبدأ Intent عملية البث المباشر من خلال بدء نشاط في تطبيق YouTube.

تنسيق النيّة

يستخدم هدف "البث المباشر المخصّص للأجهزة الجوّالة" سلسلة Action مخصّصة للانتقال إلى "نشاط الإنشاء المباشر" ضمن تطبيق YouTube. ويحدّد أيضًا اسم حزمة تطبيق YouTube للأجهزة الجوّالة.

الأهداف الإضافية حسب نية العميل

يعالج مسار إعداد تطبيق YouTube عملية ضبط مصدر البيانات. مَعلمات مجموعة Intent الإضافية التالية والمرتبطة بالبث المباشر:

المَعلمات
Intent.EXTRA_REFERRER مَعلمة مطلوبة. تحدّد هذه المعلمة معرف موارد منتظم (URI) يمثل التطبيق الذي يشغِّل نشاط البث المباشر. يجب أن تتبع هذه القيمة تنسيق android-app: scheme مع اسم حزمة. تتيح القيمة تحديد المصدر والمحاسبة بدقة.
Intent.EXTRA_SUBJECT Optional. تقدّم هذه المَعلمة وصفًا نصيًا للبث المباشر. ويتم وضعه في حِزمة "إضافات الهدف" كـ سلسلة. يمكن استخدام القيمة لإضافة تعليق توضيحي إلى البث من خلال رسالة تحمل علامة تجارية، مثل "تم البث المباشر من الجهاز DEVICE".

بدء عملية البث المباشر

الخطوة 1: التحقّق من توفّر الدعم

على العميل التأكّد أولاً من إمكانية إطلاق ميزة "البث المباشر على الأجهزة الجوّالة" من خلال التحقّق من تثبيت تطبيق YouTube على الجهاز ومن أنّ إصدار تطبيق YouTube متوافق مع ميزة البث المباشر. يحدِّد نموذج الرمز البرمجي التالي طريقتَين لإجراء ذلك:

  • تتحقّق طريقة 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: بدء نشاط البث المباشر

لبدء عملية البث المباشر، ينشئ تطبيق العميل نية ويشغّلها كما هو موضّح في نموذج الرمز البرمجي التالي:

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