Les informations multimédias, comme les vidéos en direct, peuvent être utiles aux opérateurs d'appels d'urgence dans les situations critiques. Exemple :
- Incidents de voiture : une vidéo en direct de la scène peut les aider à comprendre les véhicules impliqués.
- Incendies : pour comprendre l'étendue de l'incendie et des dégâts.
- Urgences médicales : guider les utilisateurs pour qu'ils puissent effectuer une réanimation cardiopulmonaire et sauver des vies
Le système ELS peut désormais intercepter un SMS envoyé par un opérateur demandant une vidéo en direct à un utilisateur et présenter une expérience vidéo intégrée. Comme il s'agit spécifiquement de situations d'urgence, l'autorisation d'accès à la caméra devrait être accordée au préalable pendant toute la durée de l'urgence.
Nos principaux objectifs avec cette fonctionnalité sont de fournir aux utilisateurs :
- une expérience vidéo en direct fluide sans autorisations complexes.
- une expérience cohérente pour tous les utilisateurs Android.
Fonctionnement
Guide d'intégration
1. Réception
Après avoir mis à jour votre configuration ELS pour activer la vidéo en direct, vous commencerez à recevoir le champ live_video_token dans les messages ELS HTTPS lorsqu'un téléphone d'utilisateur est compatible avec la fonctionnalité. Cette fonctionnalité est compatible avec les appareils Android 8 Oreo et versions ultérieures.
Le jeton est un identifiant généré sur l'appareil qui change à chaque appel ou message et se compose des éléments suivants :
- 6 caractères aléatoires
- Alphanumérique
- Majuscule
2. Invitation
Lorsque vous détectez le jeton, transmettez-le dans l'URL, par exemple en tant que paramètre d'URL, dans le SMS contenant le lien vers votre flux vidéo. Par exemple : https://example.com/live?token=AFZ791. Le service ELS détecte les SMS entrants pendant les appels ou messages d'urgence, et recherche le jeton vidéo en direct correspondant, qui est AFZ791 dans ce cas.
Lorsque l'appareil détecte une URL et un jeton valides, une boîte de dialogue s'affiche pour demander à l'utilisateur s'il souhaite accepter la demande. S'il clique sur Accept, le lien envoyé dans le SMS de demande s'ouvre dans une expérience WebView intégrée.
3. Expérience vidéo en direct
Le lien vers votre vidéo en direct doit être compatible avec deux expériences :
A. Expérience basée sur un navigateur Web :
Cela peut inclure votre propre UI personnalisée, par exemple :
- Boutons
- Demandes de localisation
- Boîtes de dialogue et consentements
B. Expérience intégrée :
Pour ce faire, vous devez :
- Supprimer tous les boutons, car les événements tactiles ne fonctionneront pas
- Lancer directement le flux vidéo sans boîte de dialogue
Détection
Vous pouvez détecter le mode intégré en observant l'user-agent contenant Live.
Exemple d'user-agent dans un navigateur mobile : Mozilla/5.0 (Linux; Android
10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Mobile
Safari/537.36
Exemple d'user-agent dans une expérience WebView intégrée : 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
En JavaScript, vous pouvez y parvenir en utilisant le code suivant :
if (navigator.userAgent.includes("Live")) {
<!-- Render integrated experience -->
} else {
<!-- Render your your own custom UI -->
}
Autorisations
- L'autorisation d'accès à la caméra doit être accordée au préalable pour la vidéo en direct intégrée. Vous devez la demander comme d'habitude via JavaScript.
- Les autorisations d'accès à la position, à l'audio et autres seront automatiquement refusées.
Accroches
Pour offrir la meilleure expérience utilisateur, l'expérience intégrée fournit les éléments d'interface utilisateur permettant d'inverser la caméra et d'activer/désactiver la lampe torche.
| Nom de la fonction | Renvois | Description | |
|---|---|---|---|
| Appareil photo | switchCamera |
Promise<bool> |
Au chargement, commencez par la caméra orientée vers l'arrière (mode "environnement") qui est la plus utile en cas d'urgence. Passez d'une caméra disponible à l'autre chaque fois que la fonction est appelée. Renvoie true si le changement de caméra a réussi. |
| Lampe de poche | toggleFlashlight |
Promise<bool> |
Activez et désactivez la lampe de poche chaque fois que la fonction est appelée. Renvoie true si la lampe de poche a été activée ou désactivée. |
| Lampe de poche | isFlashlightAvailable |
bool |
Renvoie true ou false selon la disponibilité de la lampe torche pour le mode caméra actuel. Après un appel à switchCamera, la valeur renvoyée reflète l'état de disponibilité mis à jour dès que Promise de switchCamera est résolu. |
| Lampe de poche | isFlashlightOn |
bool |
Renvoie true lorsque la lampe de poche est allumée, ou false si ce n'est pas le cas. Après un appel à toggleFlashlight, suppose que la valeur renvoyée reflète l'état de la lampe de poche mis à jour dès que Promise de toggleFlashlight est résolu. |