Quando i contenuti vengono trasmessi a un ricevitore web, l'utente deve sempre essere in grado di controllarli dall'app del mittente.
Nota: in conformità ai Termini di servizio aggiuntivi per gli sviluppatori dell'SDK Google Cast, un'applicazione multimediale Cast deve utilizzare le API di controllo della riproduzione (Messaggi di riproduzione multimediali) definite per l'SDK per controllare la riproduzione di contenuti multimediali sul ricevitore web.
Le app dei mittenti devono fornire controlli di trasmissione in queste aree:
- Trasmetti finestra di dialogo, durante la trasmissione
- Controlli del volume del mittente
- Controller espanso del mittente
- Mini controller Mittente
- Notifica mittente
- Schermata di blocco del mittente
Lo stato e i controlli di riproduzione della trasmissione in queste aree dell'app del mittente devono essere sincronizzati con le modifiche della riproduzione che avvengono sul web ricevitore, anche se non provengono dall'app del mittente. Ciò consentirà una corretta gestione sia dei comandi multi-mittente sia del controllo della riproduzione proveniente dai telecomandi, dai pulsanti e così via del dispositivo.
Android
Controlli delle finestre di dialogo di trasmissione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-cast-menu-active1.png?authuser=7&hl=it)
Mini controller
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-persistent-control1.png?authuser=7&hl=it)
Controlli delle notifiche
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification1.png?authuser=7&hl=it)
Controlli blocco schermo
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-lockscreen1.png?authuser=7&hl=it)
iOS
Controlli delle finestre di dialogo di trasmissione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-cast-menu-active1.png?authuser=7&hl=it)
Mini controller
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-persistent-control1.png?authuser=7&hl=it)
Chrome
Controlli delle finestre di dialogo di trasmissione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-cast-menu-active1.jpg?authuser=7&hl=it)
Mini controller
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-persistent-control1.jpg?authuser=7&hl=it)
Controlli del volume del mittente
L'app del mittente deve consentire agli utenti di regolare il volume dei contenuti in riproduzione sulla TV o sugli altoparlanti utilizzando i tasti del volume hardware e/o il cursore del volume del software sul dispositivo di invio. Queste impostazioni controllano uno dei seguenti elementi:
- Il livello audio inviato alla TV per i dispositivi Google Cast, ad esempio Chromecast.
- Il volume effettivo della TV/altoparlante per TV Google Cast, TV con Android TV integrato e smart speaker.
Obbligatorio
A L'app del mittente deve consentire agli utenti di regolare il volume dei contenuti in riproduzione sulla TV o sugli altoparlanti utilizzando i tasti del volume hardware e/o il cursore del volume del software sul dispositivo di invio.
- Android: il supporto per i pulsanti hardware e il cursore del volume del software è obbligatorio.
- iOS: il cursore del volume del software è obbligatorio.
- Web/Chrome: il supporto del dispositivo di scorrimento del volume del software è obbligatorio.
B Sul dispositivo mobile, il cursore del volume del software deve essere disponibile nella finestra di dialogo Trasmetti, durante la trasmissione.
C Il cursore del volume nell'app del mittente deve sincronizzarsi con il volume del ricevitore web corrente dopo la connessione al ricevitore web e rimanere sincronizzato.
D Il cursore del volume nell'app del mittente deve rispecchiare le modifiche del volume apportate da altri mittenti o dal telecomando dell'app Chromecast.
E Le app mittente non devono mai impostare il volume a un livello predefinito, ma devono solo superare le modifiche del volume avviate dall'utente.
F Solo Android. Quando utilizzi i pulsanti hardware per modificare il livello del volume sul web ricevitore, deve essere visualizzato un cursore del volume visivo (con un'icona Trasmetti a sinistra) quando vengono premuti i pulsanti del volume hardware. Nota: per Android Gingerbread (versione 2.3), l'icona Trasmetti non viene visualizzata.
Best practice
- Incrementi del volume:
- Android: il framework incrementa il volume automaticamente.
- iOS e Chrome. Per i pulsanti del volume hardware, utilizza incrementi uguali o inferiori al 5% dell'intervallo di volume completo del ricevitore web per i dispositivi audio/video e incrementi pari al 2% dell'intervallo completo del volume del ricevitore web per i dispositivi solo audio.
Controller espanso del mittente
L'app del mittente deve fornire un controller espanso per i contenuti trasmessi.
Obbligatorio
A Identifica i contenuti trasmessi visualizzando il titolo o l'artwork dei contenuti.
B Prima dell'inizio della riproduzione, mostra un indicatore di caricamento
e il titolo dei contenuti o l'artwork.
C All'avvio dei contenuti, identifica lo stato
del ricevitore web.
D Fornire i controlli pertinenti.
E All'estremità sinistra della barra di scorrimento viene visualizzato il tempo di riproduzione attuale.
Alla destra, mostra la durata totale dello stream, se nota e se non si tratta di un live streaming.
F Nascondi i controlli non pertinenti alla trasmissione.
G Non disconnettere o interrompere la trasmissione quando gli utenti escono
dal controller espanso.
H Offri un modo semplice per tornare al controller espanso
quando gli utenti escono.
Best practice
- Fornire un cursore della posizione di riproduzione per gli stream multimediali.
- Mostrare artwork e metadati relativi a contenuti significativi.
- Identifica il tempo trascorso e la durata dei contenuti per gli stream multimediali.
Android
Caricamento dei contenuti del mittente
![Caricamento dei contenuti del mittente](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-elements1_a.png?authuser=7&hl=it)
Caricamento dei contenuti del ricevitore
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=7&hl=it)
Riproduzione dei contenuti del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-elements2_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
iOS
Caricamento dei contenuti del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-elements1_a.gif?authuser=7&hl=it)
Caricamento dei contenuti del ricevitore web
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=7&hl=it)
Riproduzione dei contenuti del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-elements2_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Chrome
Caricamento dei contenuti del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-elements1_a.gif?authuser=7&hl=it)
Caricamento dei contenuti del ricevitore web
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-loading1.gif?authuser=7&hl=it)
Riproduzione dei contenuti del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-elements2_a.jpg?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Mini controller mittente
Durante la trasmissione, dovrebbe essere visualizzato un controllo piccolo e persistente, chiamato mini controller, quando l'utente esce dalla pagina di contenuti corrente o dal controller espanso a un'altra visualizzazione all'interno dell'app del mittente. Il mini controller è un promemoria visibile della trasmissione corrente e fornisce un accesso immediato.
Obbligatorio
A Una barra o un riquadro che mostra i contenuti trasmessi viene visualizzato nella
parte inferiore dell'app del mittente. Questi controlli vengono mantenuti mentre l'utente sfoglia altri contenuti o
sezioni dell'app.
B I controlli funzionano meglio quando sono semplici e comunicano ciò che viene trasmesso.
C Disponibile in tutte le schermate dell'app (tranne la pagina espansa del controller).
D Toccando l'area dei contenuti si apre il controller espanso.
E Fornisci qualsiasi altro controllo pertinente per un'azione immediata.
Best practice
Per un'esperienza utente ottimale, fornisci i controlli nella
finestra di dialogo Trasmetti oltre al mini controller.
Android
Mini controller mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-persistent-control1_a.png?authuser=7&hl=it)
Contenuti del ricevitore web in pausa
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
iOS
Mini controller mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-persistent-control1_a.png?authuser=7&hl=it)
Contenuti del ricevitore web in pausa
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Chrome
Mini controller mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-persistent-control1_a.jpg?authuser=7&hl=it)
Contenuti del ricevitore web in pausa
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Notifica mittente
Obbligatorio (solo Android)
A Utilizza l'icona dell'app (non l'icona Cast) per la
notifica nella barra di stato.
B Identifica quali contenuti vengono trasmessi. Ad esempio, visualizza
il titolo dei contenuti o l'artwork.
C Identifica quale ricevitore web sta trasmettendo.
D Fornire controlli di base dei contenuti.
E Specifica una "X" per interrompere la trasmissione e
disconnetterti dal ricevitore web, nella riga di azioni.
F Toccando il logo dell'app, il titolo dei contenuti o l'artwork dovrebbe
aprire il controller espanso dell'app del mittente.
Notes
- Solo Android: non è possibile implementare le notifiche in iOS o Chrome.
- In Android Gingerbread (versione 2.3), le notifiche mostrano solo l'icona e il testo dell'app, non vengono riprodotti/messi in pausa o interrotti.
- Per maggiori informazioni, consulta la sezione relativa all'aggiunta di controlli multimediali alle notifiche.
Android
Icona di notifica del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification1_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Controlli per le notifiche del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-notification2_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Schermata di blocco del mittente
Obbligatorio (solo Android)
A Identifica i contenuti trasmessi utilizzando il titolo o l'artwork dei contenuti.
B Identifica quale ricevitore web sta trasmettendo. Tieni presente che questa operazione non è necessaria per le app di musica.
C Fornisce i controlli di riproduzione.
D Consente di accedere al controllo del volume tramite pulsanti hardware.
Obbligatorio per Android 4.4 Lollipop e versioni successive:
- Icona dell'app
- Artwork (ad es. copertina di un album)
- Identificare nel testo i contenuti trasmessi (ad es. "Lacrime d'acciaio")
- Identifica il ricevitore web che trasmette (ad esempio, "Salotto")
Obbligatorio per Android 4.3 Jelly Bean:
- Artwork (ad es. copertina di un album)
- Identificare nel testo i contenuti trasmessi (ad es. "Lacrime d'acciaio")
- Identifica il ricevitore web che trasmette (ad esempio, "Salotto")
Notes
- Solo Android: non è possibile implementare le notifiche in iOS o Chrome.
- I controlli della schermata di blocco sono necessari per Android 4.1 e versioni successive.
- Sono disponibili controlli diversi per le diverse versioni del sistema operativo Android e la schermata di blocco può contenere solo campi di testo. In genere, la grafica e l'iconografia descrivono i contenuti in modo più immediato rispetto al testo.
- I pulsanti hardware per il controllo del volume dovrebbero regolare il volume nell'app del mittente quando il telefono è bloccato.
- Il controllo deve utilizzare il componente del framework:
MediaSession
oMediaSessionCompat
(per le versioni 4.4 e 4.3) oNotification
(per 5.0 e versioni successive).
Android
Controlli della schermata di blocco del mittente
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-lockscreen1_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Il mittente riprende la trasmissione
L'app di un mittente connesso deve ripristinare lo stato di connessione dopo una disconnessione implicita (ad esempio un caduta della rete, l'attivazione della modalità di sospensione del dispositivo o l'esaurimento della batteria).
Obbligatorio
A Se l'app del mittente si disconnette implicitamente (l'utente
non ha interrotto esplicitamente la trasmissione o la disconnessione), la riproduzione dei contenuti dovrebbe continuare sul web ricevitore. Quando l'app o la connessione vengono riavviate, l'app del mittente dovrebbe ripristinare la
connessione al ricevitore web, a condizione che la sessione del ricevitore web sia ancora in corso.
B Il pulsante Trasmetti dovrebbe essere riportato allo stato di connessione.
C Se l'utente tocca il pulsante Trasmetti prima che il mittente
si riconnetta, viene visualizzato l'elenco dei dispositivi web ricevitori. Quando l'utente seleziona il ricevitore web che sta trasmettendo, nell'app del mittente dovrebbe apparire un controller mini o espanso.
Note
L'app Web Ricevir potrebbe anche disconnettersi e arrestarsi a causa di un'interruzione di corrente o di qualche altra interruzione fuori contesto. Questa operazione viene considerata come una fine di una normale sessione, come descritto in Il mittente interrompe la trasmissione.
Android
Selezione dell'app
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-resume1_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Connessione di trasmissione ripristinata
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-resume2_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
iOS
Selezione dell'app
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-resume1_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Connessione di trasmissione ripristinata
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-resume2_a.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Il mittente interrompe la trasmissione
La riproduzione dei contenuti trasmessi a una TV continua finché un utente non sceglie Interrompi trasmissione o un mittente trasmette qualcosa di nuovo. Quando più mittenti sono connessi allo stesso ricevitore web, ogni app del mittente deve avere un pulsante Disconnetti (anziché un pulsante Interrompi trasmissione) nella finestra di dialogo Trasmetti.
Obbligatorio
A Quando più mittenti sono connessi a un ricevitore web,
la pressione di Interrompi trasmissione da un'app del mittente non influisce sul ricevitore web e rimuove i controlli
di trasmissione e le notifiche dal dispositivo mittente. Gli altri dispositivi mittente connessi restano in contatto grazie ai controlli di trasmissione disponibili.
B Quando un'app del mittente si disconnette implicitamente (ad esempio
se la batteria del dispositivo del mittente si scarica o la connessione di rete del dispositivo del mittente al web ricevitore
cala), l'app non influisce sul ricevitore web e rimuove i controlli di trasmissione e le notifiche
dal dispositivo del mittente. L'app del mittente deve tenere traccia delle disconnessioni implicite e tentare
di riconnettersi a un ricevitore web quando viene riaperta l'app del mittente.
Android
Finestra di dialogo Trasmetti, pulsante di disconnessione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/a/sender-control-end1.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
iOS
Finestra di dialogo Trasmetti, pulsante di disconnessione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/i/sender-control-end1.png?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Chrome
Finestra di dialogo Trasmetti, pulsante di disconnessione
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/w/sender-control-end1.jpg?authuser=7&hl=it)
Ricevitore web che riproduce contenuti
![](https://developers-dot-devsite-v2-prod.appspot.com/static/cast/images/r/receiver-content-playing1.png?authuser=7&hl=it)
Le immagini utilizzate in questa guida alla progettazione sono gentilmente concesse da Blender Foundation e sono condivise dietro copyright o licenza Creative Commons.
- Il sogno degli elefanti: (c) copyright 2006, Blender Foundation / Paesi Bassi Media Art Institute/ www.elephantsdream.org
- Sintel: (c) copyright Blender Foundation | www.sintel.org
- Lacrime d'acciaio: (CC) Blender Foundation | mango.blender.org
- Big Buck Bunny: (c) copyright 2008, Blender Foundation / www.bigbuckbunny.org