يمكن أن تكون معلومات الوسائط المتعددة، مثل الفيديو المباشر، مفيدة لموظفي تلقّي مكالمات الطوارئ أثناء الحالات الحرجة. على سبيل المثال:
- حوادث السيارات: يمكن أن يساعدهم فيديو مباشر للمشهد في فهم المركبات المتورطة.
- الحرائق: للتعرّف على مدى الحريق والأضرار الناجمة عنه
- حالات الطوارئ الطبية: توجيه المستخدمين بشأن كيفية إجراء الإنعاش القلبي الرئوي لإنقاذ الأرواح
يمكن لنظام ELS الآن اعتراض رسالة SMS يرسلها موظف مركز الاتصال لطلب فيديو مباشر من المستخدم، وتقديم تجربة فيديو متكاملة. بما أنّ هذه الميزة مخصّصة لحالات الطوارئ، فإنّها تتضمّن ميزة منح إذن الوصول إلى الكاميرا مسبقًا طوال مدة حالة الطوارئ.
تتمثّل أهدافنا الرئيسية من هذه الميزة في تزويد المستخدمين بما يلي:
- تجربة فيديو مباشر سلسة بدون أذونات معقّدة
- تجربة متسقة لجميع مستخدمي Android
آلية العمل
دليل الدمج
1- استلام الكرة
بعد تعديل إعدادات "خدمات تحديد الموقع الجغرافي في حالات الطوارئ" لتفعيل ميزة الفيديو المباشر، ستبدأ في تلقّي الحقل live_video_token في رسائل "خدمات تحديد الموقع الجغرافي في حالات الطوارئ" عبر HTTPS عندما يتيح هاتف المستخدم هذه الميزة. تتوفّر هذه الميزة على الأجهزة التي تعمل بالإصدار 8 من نظام التشغيل Android Oreo والإصدارات الأحدث.
الرمز المميّز هو معرّف يتم إنشاؤه على الجهاز ويتغيّر مع كل مكالمة أو رسالة نصية ويتألف من:
- 6 أحرف عشوائية
- أحرف أبجدية رقمية
- أحرف كبيرة
2. دعوة
عند رصد الرمز المميّز، مرِّره في عنوان URL، مثل مَعلمة عنوان URL،
في الرسالة القصيرة التي تحتوي على رابط بث الفيديو، على سبيل المثال:
https://example.com/live?token=AFZ791. ستكتشف خدمة ELS رسائل SMS الواردة
أثناء مكالمات أو رسائل الطوارئ، وستبحث عن الرمز المميز المطابق للفيديو المباشر، وهو AFZ791 في هذه الحالة.
عندما يرصد الجهاز عنوان URL صالحًا ورمزًا مميزًا، سيظهر للمستخدم مربّع حوار يسأله عمّا إذا كان يريد قبول الطلب. إذا نقروا على Accept، سيتم فتح الرابط المُرسَل في رسالة SMS التي تتضمّن طلبك في تجربة عرض ويب مدمجة.
3- تجربة الفيديو المباشر
يجب أن يتيح رابط الفيديو المباشر تجربتَين:
(أ). التجربة المستندة إلى متصفّح الويب:
قد يشمل ذلك واجهة مستخدم مخصّصة، مثل:
- الأزرار
- طلبات الموقع الجغرافي
- مربّعات الحوار والموافقات
(ب). تجربة متكاملة:
لإجراء ذلك، عليك:
- إزالة جميع الأزرار لأنّ أحداث اللمس لن تعمل
- بدء البث المباشر للفيديو مباشرةً بدون مربّعات حوار
الرصد
يمكنك رصد الوضع المدمج من خلال مراقبة وكيل المستخدم الذي يتضمّن
Live.
مثال على وكيل المستخدم في تجربة المتصفّح على الأجهزة الجوّالة: Mozilla/5.0 (Linux; Android
10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile
Safari/537.36
مثال على وكيل المستخدم في تجربة العرض المضمّن المتكاملة: Mozilla/5.0 (Linux;
Android 10; K; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0
Chrome/125.000 Mobile Safari/537.36 Live/25.23.10
يمكن تحقيق ذلك في JavaScript باستخدام ما يلي:
if (navigator.userAgent.includes("Live")) {
<!-- Render integrated experience -->
} else {
<!-- Render your your own custom UI -->
}
الأذونات
- يجب منح إذن الوصول إلى الكاميرا مسبقًا للفيديو المباشر المدمج، ويجب طلب هذه الأذونات كالمعتاد من خلال JavaScript.
- سيتم تلقائيًا رفض إذن تحديد الموقع الجغرافي والصوت والأذونات الأخرى.
عناصر الجذب
لتقديم أفضل تجربة للمستخدم، ستوفّر التجربة المدمجة عناصر واجهة المستخدم اللازمة لقلب الكاميرا وتشغيل المصباح اليدوي وإيقافه.
| اسم الدالة | الإرجاع | الوصف | |
|---|---|---|---|
| الكاميرا | switchCamera |
Promise<bool> |
عند التحميل، ابدأ بالكاميرا الخلفية (وضع المواجهة = البيئة) لأنّها الأكثر فائدة في حالات الطوارئ. التبديل بين الكاميرات المتاحة في كل مرة يتم فيها استدعاء الدالة يتم عرض true عند التبديل إلى الكاميرا بنجاح. |
| المصباح اليدوي | toggleFlashlight |
Promise<bool> |
التبديل بين تشغيل ضوء الفلاش وإيقافه في كل مرة يتم فيها استدعاء الدالة يتم عرض true عند تشغيل ضوء الفلاش أو إيقافه بنجاح. |
| المصباح اليدوي | isFlashlightAvailable |
bool |
تعرض هذه السمة القيمة true أو false استنادًا إلى ما إذا كان المصباح اليدوي متاحًا لوضع الكاميرا الحالي. بعد إجراء مكالمة إلى switchCamera، يفترض أنّ قيمة العرض تعكس حالة التوفّر المعدَّلة فور حلّ Promise في switchCamera. |
| المصباح اليدوي | isFlashlightOn |
bool |
تعرض الدالة true عندما يكون المصباح اليدوي مشغّلاً، وتعرض false في الحالات الأخرى. بعد إجراء مكالمة إلى toggleFlashlight، يفترض أن تعكس القيمة المعروضة حالة المصباح اليدوي المعدَّلة بمجرد أن يتم حل Promise في toggleFlashlight |