# Notas de grabación y visualización real de audio

Referencia interna: este archivo vive en `docs/` y no está listado en
`flutter.assets`, así que no se compila dentro de la aplicación.

## Decisiones aplicadas

- La grabación de radio se hace leyendo el stream HTTP original de la emisora y
  escribiendo sus bytes a disco. No se graba micrófono ni salida del sistema.
- La ventaja es que se conserva la calidad original del stream y se evita
  recomprimir audio.
- La forma de onda real se intenta capturar en Android con
  `android.media.audiofx.Visualizer` usando el `androidAudioSessionId` expuesto
  por `just_audio`.
- Si Android deniega permisos o el dispositivo no permite capturar esa sesión,
  la UI cae al visualizador animado anterior para no bloquear el reproductor.

## Fuentes consultadas

- `just_audio` expone `androidAudioSessionIdStream` para enlazar efectos o
  visualizadores Android a la sesión activa:
  https://pub.dev/packages/just_audio/versions/0.10.4
- Android `Visualizer` permite capturar waveform de contenido en reproducción y
  requiere permiso `RECORD_AUDIO`:
  https://www.android-doc.com/reference/android/media/audiofx/Visualizer.html
- Radio Browser permite ordenar búsquedas por `bitrate` y expone campos
  `codec`/`bitrate`:
  https://stations.radioss.app/
- El paquete `audio_visualizer` existe, pero se descartó como dependencia
  inmediata porque duplicaría reproducción con su propio player; PluriWave ya
  usa `audio_service` + `just_audio` y acabamos de estabilizar ese flujo:
  https://pub.dev/packages/audio_visualizer
