Lorsque du contenu est diffusé vers un récepteur Web, l'utilisateur doit toujours pouvoir le contrôler depuis l'application émettrice.
Remarque: Conformément aux Conditions d'utilisation supplémentaires du SDK Google Cast pour les développeurs, une application multimédia Cast doit utiliser les API Play Control (Media Playback Messages) définies pour le SDK afin de contrôler la lecture des contenus multimédias sur Web Receiver.
Les applications émettrices doivent proposer des commandes Cast dans les domaines suivants:
- Boîte de dialogue "Caster" pendant la diffusion
- Commandes de volume de l'expéditeur
- Télécommande pour les expéditeurs étendus
- Mini-télécommande émetteur
- Notification de l'expéditeur
- Écran de verrouillage de l'expéditeur
L'état de la lecture et les commandes Cast de l'application émettrice dans ces zones doivent être synchronisés avec les modifications de lecture qui se produisent sur Web Receiver, même lorsqu'elles ne proviennent pas de l'application émettrice. Cela permettra de gérer correctement les commandes du mode expéditeur groupé et celles provenant des télécommandes, des boutons de l'appareil, etc.
Android
Commandes de diffusion de la boîte de dialogue
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-cast-menu-active1.png?authuser=8&hl=fr)
Mini-télécommande
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-persistent-control1.png?authuser=8&hl=fr)
Paramètres de notification
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification1.png?authuser=8&hl=fr)
Verr. commandes écran
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-lockscreen1.png?authuser=8&hl=fr)
iOS
Commandes de diffusion de la boîte de dialogue
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-cast-menu-active1.png?authuser=8&hl=fr)
Mini-télécommande
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-persistent-control1.png?authuser=8&hl=fr)
Chrome
Commandes de diffusion de la boîte de dialogue
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-cast-menu-active1.jpg?authuser=8&hl=fr)
Mini-télécommande
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-persistent-control1.jpg?authuser=8&hl=fr)
Commandes de volume de l'expéditeur
L'application émettrice doit permettre aux utilisateurs de contrôler le volume du contenu diffusé sur le téléviseur ou les enceintes à l'aide des boutons de volume matériels et/ou du curseur de volume logiciel de l'appareil émetteur. Ils contrôlent l'un des éléments suivants:
- Niveau audio envoyé au téléviseur pour les appareils Google Cast tels que Chromecast.
- Le volume natif réel du téléviseur/de l'enceinte pour les téléviseurs Google Cast, les téléviseurs avec Android TV intégré et les enceintes intelligentes.
Obligatoire
A L'application de l'émetteur doit permettre aux utilisateurs de contrôler le volume du contenu diffusé sur le téléviseur ou les enceintes à l'aide des boutons de volume matériels et/ou du curseur de volume logiciel de l'appareil émetteur.
- Android: les boutons physiques et le curseur de volume logiciel sont obligatoires.
- iOS: le curseur de volume logiciel est obligatoire.
- Web/Chrome: la compatibilité avec le curseur de volume logiciel est obligatoire.
B Sur l'appareil mobile, le curseur de volume du logiciel doit être disponible dans la boîte de dialogue "Caster", pendant la diffusion.
C Une fois connecté à Web Receiver, le curseur de volume de l'application de l'émetteur doit se synchroniser avec le volume actuel du récepteur Web et rester synchronisé.
D Le curseur de volume dans l'application émettrice doit refléter les changements de volume effectués par les autres expéditeurs ou la télécommande de l'application Chromecast.
E Les applications émettrices ne doivent jamais régler le volume à un niveau prédéfini. Elles ne doivent appliquer que les changements de volume déclenchés par l'utilisateur.
F Android uniquement: lorsque vous utilisez les boutons physiques pour modifier le niveau de volume sur Web Receiver, un curseur de volume visuel (avec une icône Cast à gauche) doit s'afficher lorsque vous appuyez sur les boutons de volume matériels. Remarque: Pour Android Gingerbread (version 2.3), l'icône Cast ne s'affiche pas.
Bonnes pratiques
- Incréments de volume :
- Android: le framework incrémente automatiquement le volume.
- iOS et Chrome: pour les boutons de volume matériels, utilisez des incréments de volume inférieur ou égal à 5% de la plage de volume total de l'appareil Web Receiver pour les appareils audio/vidéo, et des incréments égaux à 2% du volume total de l'appareil Web Receiver pour les appareils audio uniquement.
Télécommande pour expéditeur étendu
L'application émettrice doit fournir une télécommande agrandie pour le contenu casté.
Obligatoire
A Identifiez le contenu casté en affichant le titre ou l'illustration du contenu.
B Avant le début de la lecture, affichez un indicateur de chargement, ainsi que le titre ou l'illustration du contenu.
C Lorsque le contenu commence, identifiez l'état du récepteur Web.
D Fournir les commandes appropriées
E À l'extrémité gauche de la barre de recherche, affichez la durée de lecture actuelle.
À droite, affichez la durée totale du flux si vous la connaissez et s'il ne s'agit pas d'une diffusion en direct.
F Masquer les commandes non pertinentes pour caster du contenu
G Ne déconnectez pas et n'arrêtez pas la diffusion lorsque les utilisateurs quittent la télécommande agrandie.
H Permettez aux utilisateurs de revenir facilement au contrôleur étendu lorsque les utilisateurs quittent la page.
Bonnes pratiques
- Fournissez un curseur de position de lecture pour les flux multimédias.
- Afficher d'autres illustrations et métadonnées pertinentes liées au contenu.
- Identifiez le temps écoulé et la durée de contenu pour les flux multimédias.
Android
Chargement du contenu de l'expéditeur...
![Chargement du contenu de l'expéditeur...](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-elements1_a.png?authuser=8&hl=fr)
Chargement du contenu du récepteur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=8&hl=fr)
Lecture du contenu de l'expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-elements2_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
iOS
Chargement du contenu de l'expéditeur...
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-elements1_a.gif?authuser=8&hl=fr)
Chargement du contenu Web Receiver
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=8&hl=fr)
Lecture du contenu de l'expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-elements2_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Chrome
Chargement du contenu de l'expéditeur...
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-elements1_a.gif?authuser=8&hl=fr)
Chargement du contenu Web Receiver
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=8&hl=fr)
Lecture du contenu de l'expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-elements2_a.jpg?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Mini-télécommande expéditeur
Une petite commande persistante appelée mini-télécommande doit apparaître, lors de la diffusion, lorsque l'utilisateur quitte la page de contenu actuelle ou la télécommande agrandie pour passer à une autre vue dans l'application émettrice. La mini-télécommande est un rappel visible de la diffusion en cours et permet un accès instantané.
Obligatoire
A Une barre ou une boîte affichant le contenu diffusé s'affiche en bas de l'application émettrice. Ces commandes sont conservées pendant que l'utilisateur parcourt d'autres contenus ou sections de l'application.
B Les commandes fonctionnent mieux lorsqu'elles sont simples et indiquent ce qui est en cours de diffusion.
C Disponible sur tous les écrans de l'application (à l'exception de la page développée de la manette).
D Lorsque vous appuyez sur la zone de contenu, la télécommande développée s'ouvre.
E Fournissez toutes les autres commandes nécessaires pour une action immédiate.
Bonnes pratiques
Pour une expérience utilisateur optimale, fournissez des commandes dans la boîte de dialogue
Cast en plus de la mini-télécommande.
Android
Mini-télécommande expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-persistent-control1_a.png?authuser=8&hl=fr)
Contenu Web Receiver mis en veille
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
iOS
Mini-télécommande expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-persistent-control1_a.png?authuser=8&hl=fr)
Contenu Web Receiver mis en veille
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Chrome
Mini-télécommande expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-persistent-control1_a.jpg?authuser=8&hl=fr)
Contenu Web Receiver mis en veille
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Notification de l'expéditeur
Obligatoire (Android uniquement)
R Utilisez l'icône de l'application (et non l'icône Cast) pour afficher la notification dans la barre d'état.
B Identifier le contenu en cours de diffusion Par exemple, affichez le titre du contenu ou l'illustration.
C Identifiez le récepteur Web qui diffuse du contenu.
D Fournir des contrôles d'accès de base au contenu
E Indiquez "X" pour arrêter la diffusion et vous déconnecter du récepteur Web, dans la ligne des actions.
F Si l'utilisateur appuie sur le logo de l'application, le titre du contenu ou l'illustration, la télécommande agrandie de l'application émettrice doit s'ouvrir.
Remarques
- Android uniquement: il n'est pas possible d'implémenter les notifications dans iOS ni Chrome.
- Dans Android Gingerbread (version 2.3), les notifications n'affichent que l'icône et le texte de l'application, pas la lecture, la mise en pause ni l'arrêt.
- Pour en savoir plus, consultez Ajouter des commandes multimédias aux notifications.
Android
Icône de notification de l'expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification1_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Commandes de notification pour les expéditeurs
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification2_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Écran de verrouillage de l'expéditeur
Obligatoire (Android uniquement)
A Identifiez la diffusion de contenu à l'aide du titre ou de l'illustration.
B Identifier quel récepteur Web diffuse du contenu. Notez que cela n'est pas obligatoire pour les applications de musique.
C Fournissez les commandes de lecture.
D Fournissez l'accès à la commande de volume à l'aide de boutons physiques.
Obligatoire pour Android 4.4 KitKat et versions ultérieures:
- Icône de l'application
- Illustration (par exemple, couverture d'album)
- Identifier dans le texte le contenu casté (par exemple, "Larmes d'acier")
- Identifier le Web Receiver qui diffuse du contenu (par exemple, "Salon")
Obligatoire pour Android 4.3 Jelly Bean:
- Illustration (par exemple, couverture d'album)
- Identifier dans le texte le contenu casté (par exemple, "Larmes d'acier")
- Identifier le Web Receiver qui diffuse du contenu (par exemple, "Salon")
Remarques
- Android uniquement: il n'est pas possible d'implémenter les notifications dans iOS ni Chrome.
- Les commandes de l'écran de verrouillage sont requises pour Android 4.1 et versions ultérieures.
- Différentes commandes sont disponibles pour les différentes versions du système d'exploitation Android, et l'écran de verrouillage ne peut prendre en charge que les champs de texte. En règle générale, les graphiques et l'iconographie décrivent le contenu plus rapidement que le texte.
- Les boutons physiques de contrôle du volume doivent régler le volume dans l'application émettrice lorsque le téléphone est verrouillé.
- La commande doit utiliser le composant de framework:
MediaSession
ouMediaSessionCompat
(pour les versions 4.4 et 4.3) ouNotification
(pour les versions 5.0 et ultérieures).
Android
Commandes de l'écran de verrouillage de l'expéditeur
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-lockscreen1_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
L'expéditeur reprend la diffusion
Une application émettrice connectée doit restaurer son état de connexion après une déconnexion implicite (par exemple, une perte de réseau, la mise en veille de l'appareil ou une décharge de la batterie).
Obligatoire
A Si l'application émettrice se déconnecte implicitement (l'utilisateur n'a pas explicitement arrêté la diffusion ou ne s'est pas déconnecté), la diffusion du contenu doit se poursuivre sur Web Receiver. Lorsque l'application ou la connexion sont redémarrées, l'application émettrice doit restaurer la connexion au récepteur Web, tant que la session Web du récepteur est toujours en cours.
B L'état de l'icône Cast est alors rétabli.
C Si l'utilisateur appuie sur l'icône Cast avant que l'expéditeur se reconnecte, la liste des appareils Web Receiver s'affiche. Lorsque l'utilisateur sélectionne le récepteur Web en cours de diffusion, une mini-télécommande ou une télécommande agrandie doivent s'afficher dans l'application émettrice.
Remarques
L'application Web Receiver peut également se déconnecter et cesser de fonctionner en raison d'une coupure de courant ou d'une autre interruption hors contexte. Cela est considéré comme une fin de session ordinaire, comme décrit dans la section Arrêt de la diffusion de l'expéditeur.
Android
Sélectionner l'application
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-resume1_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Connexion Cast restaurée
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-resume2_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
iOS
Sélectionner l'application
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-resume1_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Connexion Cast restaurée
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-resume2_a.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
L'expéditeur arrête la diffusion
La lecture du contenu casté sur un téléviseur se poursuit jusqu'à ce que l'utilisateur sélectionne "Arrêter la diffusion" ou que l'expéditeur diffuse un nouveau contenu. Lorsque plusieurs expéditeurs sont connectés au même récepteur Web, chaque application émettrice doit afficher un bouton "Déconnecter" (au lieu du bouton "Arrêter la diffusion") dans la boîte de dialogue "Caster".
Obligatoire
A Lorsque plusieurs expéditeurs sont connectés à un récepteur Web,
appuyer sur "Arrêter la diffusion depuis une application émettrice" n'a aucun effet sur le récepteur Web et supprime les commandes de diffusion et les notifications de cet appareil. Le ou les appareils émetteurs connectés restants restent connectés et les commandes Cast sont disponibles.
B Lorsqu'une application émettrice se déconnecte implicitement (par exemple, si la batterie de l'appareil émetteur est déchargée ou si la connexion réseau de l'appareil émetteur au récepteur Web est interrompue), elle n'a aucun effet sur le récepteur Web et supprime les commandes de diffusion et les notifications de l'appareil émetteur. L'application émettrice doit suivre les déconnexions implicites et tenter de se reconnecter à un récepteur Web lorsque l'application émettrice est à nouveau ouverte.
Android
Boîte de dialogue "Caster", bouton de déconnexion
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-end1.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
iOS
Boîte de dialogue "Caster", bouton de déconnexion
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-end1.png?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Chrome
Boîte de dialogue "Caster", bouton de déconnexion
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-end1.jpg?authuser=8&hl=fr)
Web Receiver lit du contenu
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=8&hl=fr)
Les images utilisées dans ce guide de conception sont fournies par la Blender Foundation. Elles sont partagées sous licence Creative Commons ou droits d'auteur.
- Le rêve d'éléphant: (c) droits d'auteur 2006, Blender Foundation / Pays-Bas Media Art Institute/www.elephantsdream.org
- Sintel: (c) Copyright Blender Foundation | www.sintel.org
- Tears of Steel: (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org