Quando i contenuti vengono trasmessi a un ricevitore web, l'utente deve sempre essere in grado di controllarli dall'app mittente.
Nota: in conformità con i 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 multimediale) definite per l'SDK per controllare la riproduzione multimediale sul ricevitore web.
Le app mittenti devono fornire i controlli di Cast in queste aree:
- Finestra di dialogo della trasmissione, durante la trasmissione
- Controlli del volume del mittente
- Controllore mittente espanso
- Mini controller del mittente
- Notifica al mittente
- Schermata di blocco del mittente
Lo stato e i controlli di riproduzione di Cast dell'app mittente in queste aree devono essere sincronizzati con le modifiche alla riproduzione che si verificano sul Web Receiver, anche se non originate dall'app mittente. Ciò consentirà la corretta gestione sia dei comandi multi-mittente sia del controllo della riproduzione proveniente dai telecomandi, dai pulsanti e così via del dispositivo.
Android
Controlli della finestra di dialogo Trasmetti

Mini controller

Controlli delle notifiche

Controlli blocco schermo

iOS
Controlli della finestra di dialogo Trasmetti

Mini controller

Chrome
Controlli della finestra di dialogo Trasmetti

Mini controller

Controlli del volume del mittente
L'app mittente deve consentire agli utenti di controllare il volume dei contenuti riprodotti sulla TV o sugli speaker utilizzando i tasti del volume hardware e/o il cursore del volume software sul dispositivo di invio. Questi controlli riguardano:
- Il livello audio inviato alla TV per i dispositivi Google Cast come Chromecast.
- Il volume effettivo della TV/dell'altoparlante nativo per le TV Google Cast, le TV con Android TV integrata e gli smart speaker.
Obbligatorio
A L'app mittente deve consentire agli utenti di controllare il volume dei contenuti riprodotti sulla TV o sugli speaker utilizzando i tasti del volume hardware e/o il cursore del volume software sul dispositivo di invio.
- Android: è obbligatorio il supporto sia dei pulsanti hardware sia del cursore del volume software.
- iOS: il cursore del volume del software è obbligatorio.
- Web/Chrome: il supporto del cursore 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 mittente deve sincronizzarsi con il volume corrente di Web Receiver dopo la connessione a Web Receiver e rimanere sincronizzato.
D Il cursore del volume nell'app mittente deve riflettere le modifiche al volume apportate da altri mittenti o dal telecomando dell'app Chromecast.
E Le app mittenti non devono mai impostare il volume su un livello predefinito, ma devono solo trasmettere le modifiche al volume avviate dall'utente.
F Solo Android: quando si utilizzano i tasti hardware per modificare il livello del volume sul ricevitore web, deve essere visualizzato un cursore del volume visivo (con un'icona Cast a sinistra) quando vengono premuti i tasti hardware del volume. Nota: per Android Gingerbread (versione 2.3), l'icona Trasmetti non viene visualizzata.
Best practice
- Incrementi di volume:
- Android: il framework aumenta automaticamente il volume.
- iOS e Chrome: per i tasti del volume hardware, utilizza incrementi inferiori o uguali al 5% dell'intervallo di volume completo del dispositivo Web Receiver per i dispositivi audio/video e incrementi pari al 2% dell'intervallo di volume completo del dispositivo Web Receiver per i dispositivi solo audio.
Controller mittente espanso
L'app mittente deve fornire un controller espanso per i contenuti trasmessi.
Obbligatorio
Un Identifica i contenuti trasmessi visualizzando il titolo o la copertina.
B Prima dell'inizio della riproduzione, mostra un indicatore di caricamento
e il titolo o la copertina dei contenuti.
C Quando i contenuti iniziano, identifica lo stato di Web Receiver.
D Fornisci controlli pertinenti.
E All'estremità sinistra della barra di ricerca, visualizza il tempo di riproduzione corrente.
All'estremità destra, visualizza 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 altre opere e metadati significativi correlati ai contenuti.
- Identifica il tempo trascorso e la durata dei contenuti per gli stream multimediali.
Android
Caricamento dei contenuti del mittente

Caricamento dei contenuti del destinatario

Riproduzione dei contenuti del mittente

Web Receiver riproduce i contenuti

iOS
Caricamento dei contenuti del mittente

Caricamento dei contenuti di Web Receiver

Riproduzione dei contenuti del mittente

Web Receiver riproduce i contenuti

Chrome
Caricamento dei contenuti del mittente

Caricamento dei contenuti di Web Receiver

Riproduzione dei contenuti del mittente

Web Receiver riproduce i contenuti

Mini controller del mittente
Durante la trasmissione, quando l'utente esce dalla pagina dei contenuti correnti o dal controller espanso per passare a un'altra visualizzazione all'interno dell'app mittente, dovrebbe essere visualizzato un piccolo controllo persistente noto come mini controller. Il mini controller è un promemoria visibile della trasmissione corrente e consente di accedervi immediatamente.
Obbligatorio
A Una barra o una casella che mostra i contenuti trasmessi viene visualizzata vicino
alla parte inferiore dell'app mittente. Questi controlli rimangono visibili mentre l'utente sfoglia altri contenuti o
sezioni dell'app.
B I controlli funzionano meglio se sono semplici e
comunicano i contenuti trasmessi.
C Disponibile in tutte le schermate dell'app (ad eccezione della pagina del controller espanso).
D Toccando l'area dei contenuti si apre il controller espanso.
E Fornisci eventuali altri controlli pertinenti all'azione immediata.
Best practice
Per un'esperienza utente ottimale, fornisci i controlli nella
finestra di dialogo
Trasmetti oltre al mini controller.
Android
Mini controller del mittente

Contenuti di Web Receiver in pausa

iOS
Mini controller del mittente

Contenuti di Web Receiver in pausa

Chrome
Mini controller del mittente

Contenuti di Web Receiver in pausa

Notifica al mittente
Obbligatorio (solo Android)
A Utilizza l'icona dell'app (non l'icona Trasmetti) per la
notifica nella barra di stato.
B Identifica i contenuti in fase di trasmissione. Ad esempio, il titolo o la copertina
dei contenuti visualizzati.
C Identifica quale Web Receiver sta trasmettendo.
D Fornisci controlli dei contenuti di base.
E fornisci una "X" per interrompere la trasmissione e
disconnetterti dal ricevitore web nella riga delle azioni.
F Se tocchi il logo dell'app, il titolo dei contenuti o la copertina,
si apre il controller espanso dell'app mittente.
Note
- Solo Android: non è possibile implementare le notifiche in iOS o Chrome.
- In Android Gingerbread (versione 2.3), le notifiche mostreranno solo l'icona e il testo dell'app, non riproduzione/pausa o interruzione.
- Per saperne di più, vedi aggiunta dei controlli multimediali alle notifiche.
Android
Icona di notifica del mittente

Web Receiver riproduce i contenuti

Controlli di gestione delle notifiche del mittente

Web Receiver riproduce i contenuti

Schermata di blocco del mittente
Obbligatorio (solo Android)
A Identifica la trasmissione dei contenuti utilizzando il titolo o la copertina.
B Identifica quale Web Receiver sta trasmettendo. Nota: questo
non è necessario per le app musicali.
C Fornisci controlli di riproduzione.
D Fornisci l'accesso al controllo del volume tramite i pulsanti hardware.
Obbligatorio per Android 4.4 KitKat e versioni successive:
- Icona dell'app
- Artwork (ad esempio, copertina dell'album)
- Identifica nel testo i contenuti in fase di trasmissione (ad esempio "Tears of Steel")
- Identifica quale Web Receiver sta trasmettendo (ad esempio, "Salotto")
Requisiti per Android 4.3 Jelly Bean:
- Artwork (ad esempio, copertina dell'album)
- Identifica nel testo i contenuti in fase di trasmissione (ad esempio "Tears of Steel")
- Identifica quale Web Receiver sta trasmettendo (ad esempio, "Salotto")
Note
- 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 tasti hardware di controllo del volume devono regolare il volume nell'app mittente quando lo smartphone è bloccato.
- Il controllo deve utilizzare il componente framework:
MediaSession
oMediaSessionCompat
(per le versioni 4.4 e 4.3) oNotification
(per la versione 5.0 e successive).
Android
Controlli della schermata di blocco del mittente

Web Receiver riproduce i contenuti

Sender resumes cast
Un'app mittente connessa deve ripristinare il proprio stato di connessione dopo una disconnessione implicita (ad esempio una caduta della rete, la sospensione del dispositivo o l'esaurimento della batteria).
Obbligatorio
A Se l'app mittente si disconnette implicitamente (l'utente
non ha interrotto esplicitamente la trasmissione o la disconnessione), la riproduzione dei contenuti trasmessi deve continuare
sul Web Receiver. Quando l'app o la connessione viene riavviata, l'app mittente deve ripristinare la
connessione al Web Receiver, a condizione che la sessione di Web Receiver sia ancora attuale.
B Il pulsante Trasmetti deve tornare allo stato connesso.
C Se l'utente tocca il pulsante Trasmetti prima che il mittente
si riconnetta, viene visualizzato l'elenco dei dispositivi Web Receiver. Quando l'utente seleziona il ricevitore web
attualmente in trasmissione, nell'app mittente dovrebbe apparire un controller mini o espanso.
Note
L'app Web Receiver potrebbe anche disconnettersi e interrompere l'esecuzione a causa di un'interruzione di corrente o di un'altra
interruzione fuori contesto. Questa operazione viene considerata una normale fine della sessione, come descritto in
Il mittente interrompe la trasmissione.
Android
Selezione dell'app

Web Receiver riproduce i contenuti

Connessione di trasmissione ripristinata

Web Receiver riproduce i contenuti

iOS
Selezione dell'app

Web Receiver riproduce i contenuti

Connessione di trasmissione ripristinata

Web Receiver riproduce i contenuti

Il mittente interrompe la trasmissione
I contenuti trasmessi a una TV continuano a essere riprodotti finché un utente non sceglie Interrompi trasmissione o un mittente non trasmette nuovi contenuti. Quando più mittenti sono connessi allo stesso Web Receiver, ogni app 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 Web Receiver,
se si preme Interrompi trasmissione da un'app mittente, non succede nulla al Web Receiver e i controlli e le notifiche di trasmissione
vengono rimossi dal dispositivo mittente. I dispositivi mittenti connessi rimanenti rimangono
connessi con i controlli di trasmissione disponibili.
B Quando un'app mittente si disconnette implicitamente (ad esempio,
la batteria del dispositivo mittente si scarica o la connessione di rete del dispositivo mittente al Web Receiver
si interrompe), non succede nulla al Web Receiver e i controlli e le notifiche di trasmissione
vengono rimossi dal dispositivo mittente. L'app mittente deve tenere traccia delle disconnessioni implicite e tentare
di riconnettersi a un Web Receiver quando viene riaperta.
Android
Finestra di dialogo Trasmetti, pulsante Disconnetti

Web Receiver riproduce i contenuti

iOS
Finestra di dialogo Trasmetti, pulsante Disconnetti

Web Receiver riproduce i contenuti

Chrome
Finestra di dialogo Trasmetti, pulsante Disconnetti

Web Receiver riproduce i contenuti

Le immagini utilizzate in questa guida alla progettazione sono fornite per gentile concessione della Blender Foundation e condivise con licenza Creative Commons o di copyright.
- Elephant's Dream: (c) copyright 2006, Blender Foundation / Netherlands 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