Aplicación Angular 19 que permite grabar la pantalla con audio del sistema y micrófono, generar un video .webm, mostrar vista previa, descargar automáticamente, y recibir notificaciones amigables. Ideal para generar demos, clases virtuales o reportes técnicos.
-
đź§Ľ Arquitectura limpia y desacoplada (servicios, controladores, componentes standalone)
-
âś… Countdown antes de iniciar grabaciĂłn
-
🎙️ Captura audio de sistema + micrófono con
AudioContext -
📽️ Descarga automática del video grabado (
MediaRecorder) -
đź‘€ Vista previa integrada post grabaciĂłn
-
🛠️ Notificaciones personalizadas (
NotificationService) -
⚙️ Selector de calidad (720p / 1080p)
-
♻️ Grabación reactiva (
BehaviorSubject) yChangeDetectionStrategy.OnPush -
src/
-
├── app/
-
│ ├── screen-recorder/
-
│ ├── services/
-
│ │ ├── screen-recorder-controller.service.ts
-
│ │ ├── screen-recorder.service.ts
-
│ │ └── notification.service.ts
-
│ ├── shared/
-
│ │ └── notification/
-
│ └── interceptors/
-
│ └── global-error.interceptor.ts
📄 Buenas prácticas aplicadas
- âś… Componentes standalone en Angular 19
- âś… SeparaciĂłn de responsabilidades (ControllerService, UI, RecorderService)
- âś… Interceptor global de errores HTTP (GlobalErrorInterceptor)
- âś… Tipado fuerte con TypeScript (AppNotification, NotificationType)
- âś… Evita uso excesivo de NgZone/detectChanges() innecesario
- âś… Animaciones y estilos limpios con Tailwind CSS
- âś… Uso de Renderer2 para manipular DOM de forma segura
đź’» TecnologĂas
- Angular 19
- RxJS
- TypeScript
- TailwindCSS
- MediaRecorder API
- AudioContext API
đź“· Demo https://clean-record.netlify.app/
🧑‍💼 Autor
- Mateo Huancho — LinkedIn www.linkedin.com/in/mhuancho08