33 lines
1.5 KiB
Markdown
33 lines
1.5 KiB
Markdown
# 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
|