fix(reproduccion): robustez HTTP cleartext, errores ExoPlayer y certificados SSL #7
Reference in New Issue
Block a user
Delete Branch "feature/fix-reproduccion-robustez"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problema
Diagnóstico confirmado con logs ADB reales del POCO X7 Pro:
Error 1:
Cleartext HTTP traffic to [host] not permitted— Android bloqueaba streams HTTP sin cifrar. ExoPlayer lanzaba TYPE_SOURCE error pero la app no lo gestionaba: música sin detener, cuenta atrás corriendo, UI inconsistente.Error 2:
HandshakeException: CERTIFICATE_VERIFY_FAILED: self signed certificate— Al cargar artwork de algunas radios, el certificado SSL fallaba dejando imagen rota.Cambios
Fix 1 — HTTP cleartext permitido
android/app/src/main/res/xml/network_security_config.xmlconcleartextTrafficPermitted=trueAndroidManifest.xmlconandroid:networkSecurityConfigFix 2 — Gestión robusta de errores ExoPlayer
playbackEventStream.onErrorcaptura todos losPlaybackException_gestionarErrorReproduccion(): emiteAudioProcessingState.error, loggea y resetea el player_mensajeAmigable(): traduceERROR_CODE_IO_*,ERROR_CODE_PARSING_*,ERROR_CODE_DECODING_*a texto legibleEstadoRadio.reproducir()captura la excepción y cancela el timer si estaba activoEstadoRadioescuchaestadoStreamy cancela timer ante cualquier error de reproducciónFix 3 — Artwork con certificado inválido
errorWidgetenCachedNetworkImagecapturaHandshakeExceptionsilenciosamente_iconoFallback(icono de radio) en lugar de imagen rotaFix 4 — UI consistente en estado de error
PantallaReproductor._Controles: muestra mensaje + botón Reintentar en estado errorPantallaReproductor._Artwork: overlaywifi_offsobre la imagen en estado errorMiniReproductor: botónrefresh(reintentar) en lugar de play/pause en estado errorEstadoReproduccion.errorya definido; ahoraestadoStreamlo emite correctamenteMyApp→ placeholder válido)Criterios de éxito
flutter testpasaflutter analyzesin errores en los ficheros modificados