# ARQUITECTURA M001

## Captura de audio

La captura inicia en navegador mediante `navigator.mediaDevices.getUserMedia({ audio: true })`, con obtencion de stream y track de audio activo.

## Reproduccion local

El audio se ensambla como `Blob` usando `MediaRecorder`, se transforma en `ObjectURL` y se reproduce con un elemento HTML5 `<audio>`.

## Carga al servidor

El audio generado se envia con `fetch()` y `FormData` hacia un endpoint PHP dedicado.

## Almacenamiento

El backend valida metodo, tamano, extension y guarda el archivo en almacenamiento persistente accesible por URL publica.

## Flujo funcional

1. usuario inicia grabacion
2. navegador solicita microfono
3. MediaRecorder genera fragmentos de audio
4. el Blob final se reproduce localmente
5. el Blob se sube al servidor
6. el servidor devuelve URL publica
7. el audio queda reproducible desde servidor
