O Google Cast para dispositivos de áudio oferece suporte apenas à reprodução de áudio. Este guia descreve como otimizar aplicativos do Google Cast para dispositivos somente áudio e aproveitar a redução de demandas de uso de memória, CPU e largura de banda de rede.
Um app que oferece suporte ao Google Cast para áudio precisa considerar o seguinte:
- O Google Cast para dispositivos de áudio não exibe vídeos ou gráficos. No entanto, muitos dispositivos de áudio têm uma tela para mostrar metadados, como o estado de reprodução (em reprodução ou pausado) e o progresso. O app não pode mostrar essas informações importantes do usuário apenas no destinatário. As informações importantes e a maior parte da interface do usuário precisam ser mostradas no remetente.
- Para executar os aplicativos do receptor da Web corretamente, o Google Cast para dispositivos de áudio ainda precisa renderizar gráficos, mesmo que eles não sejam exibidos. Como os dispositivos podem não oferecer suporte a operações gráficas com aceleração de hardware, os aplicativos receptores precisam evitar operações com uso intensivo de gráficos, como gradientes de cores, rotação, mistura alfa e redesenho de objetos grandes, como barras de progresso, mais de uma vez por segundo.
- O Google Cast para dispositivos de áudio só oferece suporte ao Widevine para conteúdo protegido por DRM.
- Na maioria dos dispositivos de áudio com Google Cast, o aplicativo de envio controla toda a faixa de volume do dispositivo (um alto-falante, por exemplo), não apenas o volume da entrada da fonte de áudio para a TV, como em um dispositivo Chromecast.
- Além de controlar a reprodução com o dispositivo de envio (por exemplo, um smartphone), o app pode precisar controlar a reprodução com os próprios controladores do dispositivo, como um controle remoto, botões no dispositivo ou um aplicativo remoto externo.
- Um dispositivo Google Cast para áudio pode oferecer suporte à exibição de metadados de conteúdo com uma pequena tela LCD, saída HDMI (para soundbars ou receptores de áudio e vídeo) ou um aplicativo remoto externo, dependendo da interface específica do dispositivo.
Desenvolvimento
A primeira etapa para desenvolver um app de transmissão com suporte ao Google Cast para áudio é desenvolver um app de transmissão para áudio e vídeo e garantir que ele seja executado em um Chromecast. Neste documento, pressupomos que você tenha desenvolvido e testado esse app.
Um app pode oferecer suporte a dispositivos de áudio e vídeo e somente áudio. Ele precisa saber quando está transmitindo para um em vez do outro e tomar medidas para garantir a melhor experiência do usuário no cenário fornecido.
Por exemplo, apps de vídeo e áudio dual (como aplicativos de reprodução de arquivos locais/NAS) precisam permitir a transmissão para dispositivos somente de áudio para oferecer suporte à reprodução de arquivos de áudio, mas não podem permitir que o usuário envie arquivos de vídeo para o dispositivo somente de áudio. O app pode usar as APIs de recursos do dispositivo para remetentes descritas abaixo para determinar o conteúdo adequado para o dispositivo.
Para oferecer suporte ao Google Cast para áudio, seu app precisa fazer o seguinte:
Suporte apenas para áudio: streaming de músicas e arquivos de áudio, rádio etc. A mídia transmitida para o app Web Receiver não pode ser um stream de vídeo. Além disso, evite transmitir gráficos e imagens para melhorar o tempo de inicialização do aplicativo e o uso de memória. Consulte as diretrizes de uso de memória abaixo.
Funcionar como esperado em um dispositivo Cast para áudio e em um Chromecast comum.
Recursos do dispositivo
O app pode saber se está sendo executado em um dispositivo somente áudio devido às APIs de recursos do dispositivo, disponíveis no próprio dispositivo ou nas APIs do remetente ou do receptor.
Cabeçalho HTTP do dispositivo
O cabeçalho HTTP CAST-DEVICE-CAPABILITIES
fornecido pelo dispositivo de transmissão durante
a inicialização do aplicativo descreve os recursos do dispositivo. O dispositivo envia uma solicitação
com esse cabeçalho para o servidor que hospeda o app do receptor da Web. O cabeçalho de um
dispositivo somente áudio descreve os recursos do dispositivo com
CAST-DEVICE-CAPABILITIES: {"display_supported":false}
.
Quando o servidor receber a solicitação do dispositivo, você poderá usar as informações desse cabeçalho para redirecionar a solicitação ao app Web Receiver, que é otimizado para dispositivos de áudio.
API Web Receiver
É possível acessar o mesmo objeto de recursos do dispositivo chamando CastReceiverManager.getDeviceCapabilities()
quando o app Web Receiver é carregado.
Consulte Recursos do dispositivo para mais informações.
APIs do remetente
Cada uma das APIs do remetente do Google Cast também tem informações sobre os recursos do dispositivo. Elas permitem que o app remetente determine qual tipo de mídia será enviado ao receptor. Se o app oferece suporte a áudio e vídeo, ele pode evitar o envio de conteúdo de vídeo para dispositivos somente de áudio. Além disso, o app pode controlar o volume usando o método mais adequado para o dispositivo, conforme descrito na Checklist de design. Consulte as seguintes APIs de recursos do dispositivo para remetentes:
- Android: CastDevice.hasCapabilities
- iOS: deviceCapabilities
- Chrome: chrome.cast.Capability
Diretrizes de uso da memória
Os apps Web Receiver em execução em dispositivos de áudio precisam gerenciar o uso da memória da seguinte maneira:
- Evite fazer o download ou usar recursos de imagem ou gráficos para reduzir o uso de memória e encurtar o tempo até o início da reprodução.
- Ao usar extensões de origem de mídia (MSE, na sigla em inglês), os aplicativos precisam limitar o buffer de streaming a 2 MB. Se você estiver usando a biblioteca do Media Player (MPL), o tamanho do buffer de transmissão do aplicativo já estará definido pela MPL.
- Ao usar o HTMLMediaElement, o tamanho do buffer de transmissão do aplicativo é definido pelo Chrome com base na taxa de transmissão. Limite a taxa de bits de áudio a 2 megabits por segundo, que é compatível com todos os codecs descritos em Mídias compatíveis (até 48 kHz/16 bits).
Controle do volume
Na maioria dos dispositivos Google Cast para áudio, o aplicativo de envio controla toda a faixa de volume do dispositivo, não apenas o volume de entrada da fonte de áudio, como em um dispositivo Chromecast. Isso significa que os incrementos de mudança de volume precisam ser menores para aplicativos somente de áudio. Consulte os documentos a seguir para ver diretrizes sobre como oferecer controle de volume no app:
- Controles de volume do remetente na Lista de verificação de design
- Volume do remetente do Android
- Volume do remetente do iOS
- Volume do remetente da Web
Controles do dispositivo
O Google Cast para dispositivos de áudio pode ter controles de reprodução próprios, como
botões e controles remotos. Elas usam as mensagens de reprodução de mídia definidas para o
namespace urn:x-cast:com.google.cast.media
, conforme descrito em
Mensagens de reprodução de mídia, para controlar a reprodução
no aplicativo receptor. O aplicativo receptor precisa oferecer suporte
a essas mensagens de reprodução de mídia para oferecer suporte aos controles de reprodução do dispositivo.
Além disso, o app de envio precisa oferecer suporte a Mensagens do destinatário para o remetente para que, se o usuário mudar o estado da mídia com os controles do dispositivo, o app de envio possa receber uma mensagem de status do destinatário e atualizar a interface de acordo.
Visor do dispositivo
Um dispositivo Google Cast para áudio pode ter uma tela LCD ou um aplicativo de controle específico que mostra metadados de mídia. O app receptor precisa fornecer esses metadados para todas as faixas de áudio e garantir que eles estejam sincronizados com o conteúdo em reprodução para que os metadados sejam mostrados corretamente na tela. Se o aplicativo estiver usando metadados personalizados, ele também precisará fornecer os metadados de áudio padrão (nome da faixa, nome do artista, título do álbum etc.), conforme descrito para cada plataforma abaixo.
O receptor recebe os metadados do remetente quando carrega a mídia. No app de envio, com o comando para carregar a mídia no receptor, é necessário especificar os campos descritos abaixo para que os metadados sejam exibidos no dispositivo Google Cast para áudio. Use as seguintes APIs:
Android
MediaMetadata
comMEDIA_TYPE_MUSIC_TRACK
e:iOS
GCKMediaMetadata
comGCKMediaMetadataType
GCKMediaMetadataTypeMusicTrack
e:Chrome
MediaInfo
comMusicTrackMediaMetadata
e:
Se o app de transmissão gerenciar uma fila de mídia no receptor ou na nuvem, o
receptor da Web vai precisar transmitir todas as atualizações de status de mídia usando o
namespace urn:x-cast:com.google.cast.media
para que todos os remetentes sejam
sincronizados.
Registro
É necessário registrar o Google Cast para dispositivos de áudio para testes e registrar seu app para oferecer suporte ao Google Cast para dispositivos de áudio usando o Play Console do SDK do Google Cast.
- Consulte Dispositivos para mais informações sobre o registro de dispositivos.
- Marque a caixa de seleção Suporte a transmissão para dispositivos somente de áudio ao registrar seu app para permitir que ele descubra o Google Cast para dispositivos de áudio. Consulte Registrar seu aplicativo.
Para apps não publicados, como aqueles usados para testes, também é necessário selecionar a opção de suporte a dispositivos somente de áudio para que o app detecte dispositivos somente de áudio.
Google Cast para áudio 2.0
O Google Cast for Audio (GC4A) 2.0 é a plataforma de áudio do Google Cast de última geração projetada para dispositivos com pouca memória, expandindo o ecossistema de dispositivos que podem transmitir seu conteúdo. Como o GC4A 2.0 é voltado para plataformas de áudio, o conjunto de APIs da Web é reduzido para se alinhar aos dispositivos sem tela. O GC4A 2.0 está sendo lançado para novos alto-falantes e alto-falantes existentes que oferecem suporte ao Google Cast.
Como testar e depurar
Como todos os alto-falantes com suporte vão fazer a transição para o GC4A 2.0, é importante que os desenvolvedores de apps de áudio testem os apps no GC4A 2.0. É possível testar seu app do Google Cast para GC4A 2.0 em qualquer um dos dispositivos GC4A 2.0 listados aqui.
O GC4A 2.0 não é compatível com o depurador remoto do Chrome. Se você quiser depurar seu app, o Google recomenda usar o Cast Debug Logger.
Dispositivos GC4A 2.0 disponíveis
Esta é uma lista não abrangente de dispositivos GC4A 2.0:
- Bose: alto-falante Wi-Fi e barras de som inteligentes
- JBL: Charge 5 Wi-Fi / Boombox 3 Wi-Fi / Authentics 200, 300 e 500
- Samsung: Music Frame / Soundbars
- LG: barras de som 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
Casos de teste básicos recomendados
É recomendável testar todos os recursos do app na GC4A 2.0. Inclua testes de reprodução de todos os tipos de mídia (podcasts, transmissões etc.), pausa, avanço rápido, pular, mudar playlists, parar e reconectar o Google Cast.
APIs compatíveis
A GC4A 2.0 oferece suporte às seguintes APIs:
- HTML
- JavaScript ECMA 6
- DOMParser
- XMLSerializer
- Documento e subclasses
- DocumentFragment
- HTMLMediaElement e HTMLAudioElement
- HTMLVideoElement (só pode reproduzir conteúdo de áudio)
- HTMLScriptElement
- HTMLBaseElement
- HTMLTemplateElement
- Elementos personalizados
- DOM de sombra
- Módulos de script / assíncrono / adiado
- Fetch / XHR
- WebSocket
- MessagePort
- Cookies
- MSE (Media Source Extensions)
- Encrypted Media Extensions (EME)
- Armazenamento local / de sessão
O GC4A 2.0 não oferece suporte a:
- Importação de módulo dinâmico (será adicionada em 2024)
- CSS
- IFrame
- TextTracks
Contato
Entre em contato com gc4a-support-external@google.com se precisar de ajuda para configurar o teste ou não conseguir usar um alto-falante Bose.