Google Cast per i dispositivi audio supporta solo la riproduzione audio. Questa guida descrive come ottimizzare le applicazioni di trasmissione per i dispositivi solo audio e sfruttare le ridotte richieste di memoria, CPU e utilizzo della larghezza di banda di rete.
Un'app che supporta Google Cast per l'audio deve tenere conto di quanto segue:
- Google Cast per i dispositivi audio non mostra video o immagini. Tuttavia, molti dispositivi audio hanno un display per mostrare i metadati, ad esempio lo stato della riproduzione (riproduzione o messa in pausa) e l'avanzamento. L'applicazione non deve mostrare queste informazioni utente critiche solo sul destinatario; le informazioni critiche e la maggior parte dell'interfaccia utente devono essere mostrate sul mittente.
- Per eseguire correttamente le applicazioni Web Receiver, Google Cast per i dispositivi audio deve comunque eseguire il rendering della grafica, anche se non viene visualizzata. Poiché i dispositivi potrebbero non supportare le operazioni grafiche con accelerazione hardware, le applicazioni di ricezione devono evitare di utilizzare operazioni che richiedono un uso intensivo della grafica, come gradienti di colore, rotazione, miscelazione alfa e ridisegnare oggetti di grandi dimensioni come le barre di avanzamento più di una volta al secondo.
- Google Cast per i dispositivi audio supporta solo i contenuti protetti da DRM (Digital Rights Management) con Widevine.
- Per la maggior parte dei dispositivi Google Cast per l'audio, l'applicazione mittente controlla l'intera gamma di volume del dispositivo (ad esempio uno speaker), non solo il volume dell'ingresso dell'origine audio alla TV, come con un dispositivo Chromecast.
- Oltre a controllare la riproduzione con il dispositivo di invio (ad esempio uno smartphone), l'app potrebbe dover prevedere il controllo della riproduzione con i controlli del dispositivo, come un telecomando, i pulsanti sul dispositivo o un'applicazione remota esterna.
- Un dispositivo Google Cast per l'audio potrebbe supportare la visualizzazione dei metadati dei contenuti con un piccolo schermo LCD, un'uscita HDMI (per soundbar o ricevitori audio-video) o un'applicazione remota esterna, a seconda dell'interfaccia utente specifica del dispositivo.
Sviluppo
Il primo passaggio per sviluppare un'applicazione Cast che supporti Google Cast per l'audio consiste nello sviluppare un'applicazione Cast per l'audio e il video e assicurarsi che funzioni su Chromecast. Questo documento presuppone che tu abbia sviluppato e testato un'app di questo tipo.
Un'app può supportare sia i dispositivi audio-video sia quelli solo audio. Deve sapere quando trasmette su uno o sull'altro e adottare misure per garantire la migliore esperienza utente nello scenario in questione.
Ad esempio, le app con contenuti video e audio (come le applicazioni di riproduzione di file locali/NAS) devono consentire la trasmissione a dispositivi solo audio per supportare la riproduzione di file audio, ma l'app non deve consentire all'utente di inviare file video al dispositivo solo audio. L'app può utilizzare le API di funzionalità del dispositivo per i mittenti descritte di seguito per determinare i contenuti appropriati per il dispositivo.
Per supportare Google Cast per l'audio, la tua app deve:
Supporto solo audio: streaming di musica e file audio, radio e così via. I contenuti multimediali in streaming nell'app Web Receiver non devono essere uno stream video. Inoltre, evita di eseguire lo streaming di immagini e grafica per migliorare i tempi di avvio dell'applicazione e l'utilizzo della memoria. Consulta le linee guida sull'utilizzo della memoria riportate di seguito.
Funziona come previsto su un dispositivo Cast for Audio e su un normale Chromecast.
Funzionalità del dispositivo
La tua app può sapere se è in esecuzione su un dispositivo solo audio grazie alle API di funzionalità del dispositivo, disponibili sul dispositivo stesso o tramite le API di mittente o destinatario.
Intestazione HTTP del dispositivo
L'intestazione HTTP CAST-DEVICE-CAPABILITIES
fornita dal dispositivo di trasmissione durante l'avvio dell'applicazione descrive le funzionalità del dispositivo. Il dispositivo invia una richiesta con questo intestazione al server che ospita l'app Web Receiver. L'intestazione di un dispositivo solo audio descrive le funzionalità del dispositivo con CAST-DEVICE-CAPABILITIES: {"display_supported":false}
.
Quando il server riceve la richiesta dal dispositivo, puoi utilizzare le informazioni in questa intestazione per reindirizzare la richiesta all'app Web Receiver, ottimizzata per i dispositivi audio.
API Web Receiver
Puoi ottenere lo stesso oggetto delle funzionalità del dispositivo chiamando CastReceiverManager.getDeviceCapabilities()
quando viene caricata l'app Web Receiver.
Per ulteriori informazioni, consulta Funzionalità dei dispositivi.
API Sender
Ognuna delle API di mittente di trasmissione include anche le informazioni sulle funzionalità del dispositivo. Questi consentono all'app mittente di determinare il tipo di contenuti multimediali da inviare al destinatario. Se la tua app supporta sia l'audio che il video, può evitare di inviare contenuti video a dispositivi solo audio. Inoltre, l'app può regolare il volume utilizzando il metodo più appropriato per il dispositivo, come descritto nell'elenco di controllo del design. Consulta le seguenti API di funzionalità dei dispositivi per i mittenti:
- Android: CastDevice.hasCapabilities
- iOS: deviceCapabilities
- Chrome: chrome.cast.Capability
Linee guida sull'utilizzo della memoria
Le app Web Receiver in esecuzione sui dispositivi audio devono gestire l'utilizzo della memoria come segue:
- Evita di scaricare o utilizzare asset grafici o di immagini per ridurre l'impatto sulla memoria e accorciare il tempo necessario per l'avvio della riproduzione.
- Quando utilizzi le estensioni Media Source (MSE), le applicazioni devono limitare il buffer dello stream a 2 MB. Se utilizzi la Media Player Library (MPL), la dimensione del buffer dello stream dell'applicazione è già definita da MPL.
- Quando utilizzi HTMLMediaElement, le dimensioni del buffer dello stream dell'applicazione vengono definite da Chrome in base alla frequenza dello stream. Limita il bitrate audio a 2 megabit al secondo, che supporta tutti i codec descritti in Media supportati (fino a 48 KHz/16 bit).
Controllo del volume
Per la maggior parte dei dispositivi audio Google Cast, l'applicazione mittente controlla l'intera gamma di volume del dispositivo, non solo il volume di ingresso della sorgente audio, come nel caso di un dispositivo Chromecast. Ciò significa che gli incrementi della modifica del volume devono essere inferiori per le applicazioni solo audio. Per le linee guida su come fornire il controllo del volume nella tua app, consulta i seguenti documenti:
- Controlli del volume del mittente nella lista di controllo del design
- Volume mittente Android
- Volume mittente iOS
- Volume dei mittenti web
Controllo dei dispositivi
I dispositivi audio Google Cast potrebbero avere i propri controlli di riproduzione (ad esempio pulsanti, telecomandi). Questi utilizzano i messaggi di riproduzione dei contenuti multimediali definiti per lo spazio dei nomi urn:x-cast:com.google.cast.media
, come descritto in Messaggi di riproduzione dei contenuti multimediali, per controllare la riproduzione sull'applicazione di ricezione. L'applicazione del ricevitore deve supportare questi messaggi di riproduzione di contenuti multimediali per supportare i controlli di riproduzione del dispositivo.
Inoltre, l'app mittente deve supportare i messaggi dal destinatario al mittente in modo che, se l'utente modifica lo stato dei contenuti multimediali con i controlli del dispositivo, l'app mittente possa ricevere un messaggio di stato dal destinatario e aggiornare l'interfaccia utente di conseguenza.
Display del dispositivo
Un dispositivo Google Cast per l'audio potrebbe avere uno schermo LCD o un'applicazione di controllo specifica per il dispositivo che mostra i metadati dei contenuti multimediali. L'app del ricevitore deve fornire questi metadati per tutte le tracce audio e assicurarsi che siano sincronizzati con i contenuti in riproduzione per garantire che vengano visualizzati correttamente sul display. Se l'applicazione utilizza metadati personalizzati, deve fornire anche i metadati audio standard (nome traccia, nome artista, titolo album e così via) come descritto di seguito per ogni piattaforma.
Il destinatario riceve i metadati dal mittente quando carica i contenuti multimediali. Nell'app di invio, con il comando per caricare i contenuti multimediali sul ricevitore, devi specificare i campi descritti di seguito in modo che i metadati vengano visualizzati sul dispositivo Google Cast per l'audio. Utilizza le seguenti API:
Android
MediaMetadata
conMEDIA_TYPE_MUSIC_TRACK
e:iOS
GCKMediaMetadata
conGCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
e:Chrome
MediaInfo
conMusicTrackMediaMetadata
e:
Se l'app di trasmissione gestisce una coda multimediale sul ricevitore o nel cloud, il ricevitore web deve trasmettere gli aggiornamenti dello stato dei contenuti multimediali utilizzando lo spazio dei nomi urn:x-cast:com.google.cast.media
in modo che tutti i mittenti vengano sincronizzati.
Registrazione
Devi registrare il tuo dispositivo Google Cast per l'audio per i test e registrare la tua app per supportare Google Cast per i dispositivi audio utilizzando la console per sviluppatori SDK Google Cast.
- Per ulteriori informazioni sulla registrazione dei dispositivi, consulta Dispositivi.
- Devi selezionare la casella di controllo Supporta la trasmissione a dispositivi solo audio quando registri la tua applicazione per consentire all'app di rilevare Google Cast per i dispositivi audio. Consulta Registrare l'applicazione.
Per le app non pubblicate, come quelle utilizzate per i test, devi anche selezionare l'opzione per supportare i dispositivi di solo audio affinché l'app li possa rilevare.
Google Cast per l'audio 2.0
Google Cast per l'audio (GC4A) 2.0 è la piattaforma audio di Google Cast di nuova generazione progettata per avere come target i dispositivi con poca memoria, in modo da espandere l'ecosistema di dispositivi che possono riprodurre in streaming i tuoi contenuti. Poiché GC4A 2.0 ha come target le piattaforme audio, l'insieme di API web è ridotto in modo da allinearsi ai dispositivi senza display. GC4A 2.0 verrà implementato su speaker nuovi ed esistenti che supportano la trasmissione.
Test e debug
Poiché tutti gli speaker supportati passeranno a GC4A 2.0, è importante che gli sviluppatori di app audio testino le proprie app su GC4A 2.0. Puoi testare la tua app di trasmissione per GC4A 2.0 su uno qualsiasi dei dispositivi GC4A 2.0 elencati qui.
GC4A 2.0 non supporta Chrome Remote Debugger. Se vuoi eseguire il debug della tua app, Google consiglia di utilizzare Cast Debug Logger.
Dispositivi GC4A 2.0 disponibili
Questo è un elenco non esaustivo dei dispositivi GC4A 2.0:
- Bose: speaker Wi-Fi e soundbar smart
- JBL: Charge 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200, 300 e 500
- Samsung: Music Frame / soundbar
- LG: soundbar S90TY/SG10TY/SE70Q/S80Q/S90Q
- Bang & Olufsen Beosound 2 / Beocore Connect
- Sonoro Maestro 2 / Meisterstruck 2
- Cambridge Audio MXN10
- KEF LS60 / LSX II
- Teufel Motiv Home
- Nordic Argon Audio
- WiiM CI MOD S / Ultra
Scenari di test di base consigliati
Ti consigliamo di testare tutte le funzionalità dell'app su GC4A 2.0. Assicurati di includere il test della riproduzione di tutti i tipi di contenuti multimediali (podcast, stream e così via), della messa in pausa, della ricerca, del salto, della modifica delle playlist, dell'interruzione e del ricollegamento di Google Cast.
API supportate
GC4A 2.0 supporta le seguenti API:
- HTML
- JavaScript ECMA 6
- DOMParser
- XMLSerializer
- Documenti e sottoclassi
- DocumentFragment
- HTMLMediaElement e HTMLAudioElement
- HTMLVideoElement (può riprodurre solo contenuti audio)
- HTMLScriptElement
- HTMLBaseElement
- HTMLTemplateElement
- Elementi personalizzati
- DOM shadow
- Moduli script / asincroni / differiti
- Fetch / XHR
- WebSocket
- MessagePort
- Cookie
- MSE (Media Source Extensions)
- EME (Encrypted Media Extensions)
- Archiviazione locale / della sessione
GC4A 2.0 non supporta:
- Importazione di moduli dinamici (da aggiungere nel 2024)
- CSS
- IFrame
- TextTracks
Contatto
Contatta gc4a-support-external@google.com se hai bisogno di aiuto per la configurazione per i test o non riesci a utilizzare uno speaker Bose.