Conception et implémentation du lecteur feed (pool, preload, thermal) et branchement sur une API média existante
Feed vidéo vertical Android — pool de lecteurs et throttle thermique
Client Android (Compose + Media3) : pool fixe de 3 ExoPlayer, preload HLS voisin, bascule basse conso sur statut thermique sévère.
- 3
- ExoPlayer en pool
- ±1
- voisinage actif
- thermal
- mode basse conso
Contexte
Application Android de démonstration commerçants : feed vertical plein écran consommant des manifests HLS déjà prêts côté API média (le pipeline d'encodage est hors périmètre de cette fiche).
Le problème
Créer/détruire un ExoPlayer à chaque swipe coûte cher ; un préchargement trop large chauffe l'appareil ; il fallait un voisinage borné et une réaction au thermal throttling système.
L'approche
- Pool fixe de 3 ExoPlayer (précédent / courant / suivant) ; un seul playWhenReady à la fois.
- Preload HLS via Media3 DefaultPreloadManager avec durées selon la distance d'index.
- ThermalMonitor (API PowerManager) : mode basse consommation qui réduit durée et portée du preload.
- UI Jetpack Compose ; réécriture d'hôte CDN pour tests sur téléphone physique (même Wi‑Fi).
Pourquoi ce choix
Media3/ExoPlayer natif plutôt qu'un lecteur custom : le travail utile est la politique de pool et de thermique, pas réinventer le décodeur HLS.
Résultat mesuré
- Feed vertical jouable contre une API média locale
- Voisinage lecteur borné à ±1 avec preload distant plafonné
- Dégradation automatique en thermal status ≥ SEVERE