Integre a biblioteca Jetpack Media3 como padrão para reprodução de mídia, sessões, edição, metadados e extração de frames para garantir que os apps usem APIs recomendadas para lidar com tarefas complexas de mídia em formatos do Android. A modernização da arquitetura de mídia com a migração de APIs de framework legadas (como MediaPlayer, MediaMuxer e MediaExtractor) para a biblioteca robusta Jetpack Media3 oferece um kit de ferramentas unificado e rico em recursos que garante experiências de mídia consistentes.
Implementação obrigatória
Para se qualificar para o AEP, seu app precisa obedecer aos seguintes requisitos:
| ID | Diretriz |
|---|---|
| AEP-M3-GAA | Não use APIs legadas do framework Android, incluindo MediaPlayer, MediaExtractor, MediaMuxer e MediaMetadataRetriever. |
| AEP-M3-GAB | Se a reprodução for uma jornada principal do usuário, o app precisará integrar sessões de mídia para reconhecimento do SO e integração entre dispositivos. |
| AEP-M3-GAC | Se o app tiver uma biblioteca de conteúdo de áudio, ele precisará expor o conteúdo usando o MediaLibraryService e implementar o suporte à retomada de mídia. |
Aplicabilidade das diretrizes
Esta diretriz se aplica a:
- Apps que oferecem suporte à reprodução de mídia (vídeo ou áudio) ou edição de vídeo.
- Para todos os formatos em que o app está disponível.
Isenções
Os apps podem usar uma estrutura alternativa equivalente que ofereça qualidade, recursos do usuário, estabilidade e compatibilidade semelhantes em todo o ecossistema. Entre em contato com o suporte se tiver um framework adequado para consideração. Para se qualificar, a implementação alternativa precisa atender aos seguintes comparativos de mercado:
| ID | Isenção |
|---|---|
| AEP-M3-EAA | Em uma rede rápida, o primeiro frame do vídeo precisa ser exibido em até 500 ms após o início da ação do usuário. |
| A reprodução precisa ser fluida, sem quedas de frames visíveis ou subexecuções de áudio audíveis durante um período de 30 segundos. | |
| O app precisa gerenciar corretamente a seleção de áudio. | |
| O app precisa responder às teclas de mídia de hardware, mesmo quando estiver em execução em segundo plano. | |
| Se a reprodução em segundo plano for compatível, o app precisará postar uma notificação de estilo de mídia e usar um serviço em primeiro plano. | |
| Se o app for compatível com a retomada da reprodução, ele precisará implementar a retomada de mídia. | |
| As desconexões de fones de ouvido precisam ser processadas adequadamente. Por exemplo, pausar a reprodução em vez de mudar para o alto-falante. | |
| A reprodução precisa continuar sem queda de frames ao alternar entre as orientações do dispositivo. |
Documentação e recursos do recurso
Os recursos a seguir fornecem orientações de implementação e detalhes técnicos sobre o recurso Media3. Esses recursos são apenas para sua referência e não contêm requisitos adicionais do programa.
- Jetpack Media3
- ExoPlayer da Media3
- Controlar e anunciar a reprodução usando uma MediaSession
- API MediaExtractorCompat
- API MediaMuxerCompat
- API MetadataRetriever
- API FrameExtractor