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

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

مثال

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

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

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

يجب أن تستوفي أجهزة Android المتطلبات التالية لتتوافق بشكل سليم مع ميزة "البث المباشر على YouTube" ورابط Mobile Live العميق:

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

مواصفات Mobile Live Intent

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

تنسيق نية العميل

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

Intent extras

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

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

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

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

على العميل أولاً التأكّد من إمكانية تشغيل Mobile Live Intent من خلال التحقّق من أنّ تطبيق 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
  }
}

يجب أن توضّح التطبيقات التي تستهدف الإصدار 11 من نظام التشغيل Android (المستوى 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);
}