يتيح الرابط لموضع معيّن في YouTube Mobile Live لتطبيقات Android بدء بث مباشر على YouTube من جهاز جوّال مباشرةً. لا يحتاج التطبيق إلا إلى توفير نقطة دخول، مثل زر يمكن للمستخدم النقر عليه، ويبدأ تدفق البث المباشر على الجوّال من خلال آلية Android Intent.
مثال
يعرض هذا المسار تجربة المستخدم لتطبيق يتضمّن رابطًا إلى موضع معيّن في تطبيق YouTube، حيث يصل المستخدم إلى شاشة "إعداد البث المباشر على الأجهزة الجوّالة".
- أولاً، يضبط المستخدم البث ويضبط العنوان ووضع الخصوصية وخيارات البث الأخرى.
- بعد ذلك، ينتقل المستخدم إلى شاشة "الصورة المصغّرة" لضبط صورة مصغّرة للبث.
- وأخيرًا، يبدأ المستخدم البث المباشر ويبث العرض من الكاميرا الأمامية أو الخلفية.
متطلبات الجهاز
يجب أن تستوفي أجهزة Android المتطلبات التالية لتتوافق بشكلٍ صحيح مع البث المباشر على YouTube والرابط لموضع معين في البث المباشر على الجوّال:
- إصدار Android: Marshmallow (API 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 للأجهزة الجوّالة.
- الإجراء: "
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 | Optional. توفِّر هذه المَعلمة وصفًا نصيًا للبث المباشر. ويتم وضعه في حزمة ميزات Intent الإضافية على شكل سلسلة. يمكن استخدام القيمة لإضافة تعليق توضيحي إلى البث باستخدام رسالة تحمل علامة تجارية، مثل "تم البث مباشرةً من DEVICE". |
بدء البث المباشر
الخطوة 1: التحقّق من توفّر الدعم
يجب أن يتأكّد العميل أولاً من أنّه يمكن إطلاق ميزة "البث المباشر على الأجهزة الجوّالة" من خلال التحقق من تثبيت تطبيق YouTube على الجهاز ومن أنّ إصدار تطبيق YouTube يتيح البث المباشر. يحدد نموذج التعليمة البرمجية التالي طريقتين للقيام بذلك:
- تتحقّق الطريقة
canResolveMobileLiveIntent
من أنّ الجهاز متوافق مع "البث المباشر على الأجهزة الجوّالة". - يستدعي
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); }