feat(player): add radio recording and real waveform
Build & Deploy Pluriwave / Análisis de código (push) Successful in 12s
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 1m27s

This commit is contained in:
2026-05-21 21:17:51 +02:00
parent 6aa9a59d7b
commit a6a91af402
12 changed files with 1518 additions and 286 deletions
+32
View File
@@ -0,0 +1,32 @@
# 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