1.8 KiB
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=trueAudioTrack ... 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 :
- on conserve l'URL 360p déjà résolue ;
- on relève la dernière position connue ;
audio_servicedémarre un DEUXIÈMEmedia_kit.Player;- ce Player n'a aucun
VideoController; PlayerConfiguration(vo: 'null')désactive la sortie vidéo ;VideoTrack.no()désactive explicitement la piste vidéo ;- il seek à la position courante et reprend uniquement l'audio ;
- les contrôles notification / lockscreen pilotent ce Player.
Quand l'écran se rallume :
- on lit la position réelle du Player audio de fond ;
- on le détruit ;
- on seek le Player vidéo à cette position ;
- on remet la même vitesse ;
- on reprend la vidéo si l'audio était encore en lecture.
Test
flutter clean
flutter pub get
flutter run -d f10778d8
Puis :
- démarre une vidéo et attends au moins 10 secondes ;
- verrouille le téléphone ;
- accepte une très courte coupure de transition lors de ce premier test ;
- le son doit reprendre et continuer écran éteint ;
- utilise play/pause et +/-10 s sur l'écran verrouillé ;
- rallume et déverrouille ;
- 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 ...