Files
youtube_personal/ETAPE11_BACKGROUND_PLAYER_TEST.md

1.8 KiB

Étape 11 — Player audio séparé pour écran verrouillé

Les logs précédents montrent que le Player vidéo est arrêté AVANT que ACTION_SCREEN_OFF arrive :

  • playing=true
  • AudioTrack ... stop
  • puis seulement screenInteractive=false

Le correctif précédent ne pouvait donc pas empêcher l'arrêt.

Nouvelle architecture Android

Quand l'écran s'éteint :

  1. on conserve l'URL 360p déjà résolue ;
  2. on relève la dernière position connue ;
  3. audio_service démarre un DEUXIÈME media_kit.Player ;
  4. ce Player n'a aucun VideoController ;
  5. PlayerConfiguration(vo: 'null') désactive la sortie vidéo ;
  6. VideoTrack.no() désactive explicitement la piste vidéo ;
  7. il seek à la position courante et reprend uniquement l'audio ;
  8. les contrôles notification / lockscreen pilotent ce Player.

Quand l'écran se rallume :

  1. on lit la position réelle du Player audio de fond ;
  2. on le détruit ;
  3. on seek le Player vidéo à cette position ;
  4. on remet la même vitesse ;
  5. on reprend la vidéo si l'audio était encore en lecture.

Test

flutter clean
flutter pub get
flutter run -d f10778d8

Puis :

  1. démarre une vidéo et attends au moins 10 secondes ;
  2. verrouille le téléphone ;
  3. accepte une très courte coupure de transition lors de ce premier test ;
  4. le son doit reprendre et continuer écran éteint ;
  5. utilise play/pause et +/-10 s sur l'écran verrouillé ;
  6. rallume et déverrouille ;
  7. la vidéo doit revenir à la position atteinte par l'audio.

Logs attendus :

[BACKGROUND] start dedicated audio ...
[BACKGROUND-AUDIO] switching to dedicated player ...
[BACKGROUND-AUDIO] dedicated player ready ... playing=true
[BACKGROUND] dedicated audio active

Au retour :

[BACKGROUND-AUDIO] returning to video player ...
[BACKGROUND] video restored ...