fix(android): prevent crash when starting broadcast from preview
Detach preview callbacks through the retained surface holder before deferred native view destruction. Cover native preview teardown followed by camera capture and document the regression check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
parent
fa8038c676
commit
b98f82663d
5 changed files with 99 additions and 11 deletions
|
|
@ -69,6 +69,9 @@ sans lancer de service de capture ni de notification de direct.
|
|||
Les Podcasts en direct conservent leur service caméra/microphone existant.
|
||||
|
||||
Le chemin Android partage le rendu Camera2/EGL entre aperçu seul et encodage.
|
||||
L'arrêt de l'aperçu détache ses callbacks via le `SurfaceHolder` conservé,
|
||||
avant la destruction différée du contrôle natif ; le nettoyage ne relit pas
|
||||
la propriété `Holder` d'une `SurfaceView` dont le wrapper Java peut être libéré.
|
||||
La rotation physique utilise l'orientation du capteur, la caméra avant/arrière
|
||||
et la rotation de l'écran. Camera2 peut déjà inclure la rotation du capteur
|
||||
dans la matrice `SurfaceTexture`, ainsi qu'un miroir pour la caméra avant :
|
||||
|
|
|
|||
|
|
@ -182,6 +182,17 @@ adb shell am start -n fr.pschneider.postit/fr.pschneider.postit.PodcastCaptureTe
|
|||
adb shell run-as fr.pschneider.postit cat files/podcast-capture-test-result.txt
|
||||
```
|
||||
|
||||
Pour verifier la transition apercu vers diffusion sans contacter le serveur :
|
||||
|
||||
```bash
|
||||
adb shell am start -S -n fr.pschneider.postit/fr.pschneider.postit.PodcastCaptureTestActivity --es microphone false --es previewTransition true
|
||||
```
|
||||
|
||||
Cette variante affiche puis retire deux apercus natifs avant la capture :
|
||||
nettoyage normal, puis nettoyage apres liberation du wrapper Java de la vue.
|
||||
Elle attend la destruction differee Avalonia et verifie que la capture suivante
|
||||
produit toujours des segments. Le resultat doit inclure `previewTransition=True`.
|
||||
|
||||
Attendre `PASS` : au moins trois segments, 8 a 16 secondes capturees,
|
||||
pistes H.264 et AAC presentes, et progression des segments en arriere-plan.
|
||||
Ce test detecte notamment les captures de zero seconde dues au decalage entre
|
||||
|
|
|
|||
Loading…
Reference in a new issue