- VisualizadorAudio: 24 barras verticales con movimiento orgánico
(senos compuestos con fases aleatorias). Activo=animación fluida,
parado=decaimiento suave. Sin FFT/micrófono. Integrado en
PantallaReproductor entre info emisora y controles.
- IndicadorReproduccion: 3 barras compactas para MiniReproductor.
Reemplaza el icono estático, pulsa mientras hay audio activo.
- ServicioAudio: delega a PluriWaveAudioHandler (audio_service) para
mantener audio vivo en background. AudioService.init() en main.dart.
onTaskRemoved() libera player. mediaItem con nombre/artista/artwork.
- ServicioRadio: lastcheckok=1 en todas las peticiones — solo emisoras
verificadas como funcionales por Radio Browser API.
- EstadoRadio: errorStream (broadcast) para errores de reproducción y
búsqueda. App.dart suscribe y muestra SnackBar flotante 3s.
Los errores de carga de lista siguen como banner inline.
- Icono: generado con SDXL (morado, ondas radio blancas, Material You).
5 densidades Android (48-192px), ic_launcher_round añadido.
- Flutter create con org es.freetimelab
- pubspec.yaml con dependencias core (just_audio, audio_service, provider, sqflite)
- README con features y stack
- Assets preparados