Introducción a Angular y Fundamentos
Aprende Angular 17
Creando tu primer proyecto en Angular
Implementando estilos
Mostrando elementos
Property Binding en Angular
Event Binding: click y doble click
Event binding: keydown
Modelo de reactividad con Signals
Creando un Signal en Angular
Estructuras de control en Angular
Directivas de control
Uso de ngFor
ngFor para objetos
Update Tasks
Uso de ngIf
Uso de ngSwitch y ngSwitchDefault
Controlando un input
Manejo de formularios en Angular
Alistando tu aplicación para producción
Estilos al modo Angular
Clases en Angular
Editing mode
Estados compuestos con computed
Usando effect para localStorage
Uso de ngbuild
Despliegue con Firebase Hosting
Nueva sintaxis en Angular
Directivas @For, @switch
Migrando a la nueva sintaxis de Angular v17
Componentes Reutilizables y Comunicación
Construyendo un e-commerce en Angular
Componentes en Angular
Mostrando los componentes
Angular DevTools
Uso de Inputs en Angular
Uso de Outputs en Angular
Componentes para Producto
Ciclo de vida de los componentes
Ciclo de vida de componentes
Ciclo de vida de componentes: ngOnChanges
Ciclo de vida de componentes: ngOnInit
Detectando cambios en los inputs
Evitando memory leaks con ngDestroy
Audio player con ngAfterViewInit
Creando la página "about us" o "conócenos"
Mejorando la interfaz del producto
Creando componente de productos
Creando el Header
Creando el carrito de compras
Comunicación padre e hijo
Calculando el total con ngOnChanges
El problema del prop drilling
Reactividad con signals en servicios
Entendiendo la inyección de dependencias
Integración y Datos
Obteniendo datos una REST API
Importaciones cortas en Typescript
Pipes en Angular
Construyendo tu propio pipe
Utilizando librerías de JavaScript en Angular
Conociendo las directivas
Deployando un proyecto en Vercel
Enrutamiento y Navegación
Ruta 404
Uso del RouterLink
Vistas anidadas
Uso del RouterLinkActive
Detalle de cada producto
Obteniendo datos del producto
Galería de imagenes
Detalle de la galería
Perfeccionando tu e-commerce
Mostrando categorias desde la API
Url Params
LazyLoading y Code Splitting
Aplicando LazyLoading
Prefetching
Usando la nueva sintaxis de Angular 17
Lanzando tu aplicación a producción
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aprovechar las ventajas de Angular y su ciclo de vida, junto con librerías externas como WaveSurfer.js, puede transformar radicalmente la experiencia de usuario en tu aplicación web. Al crear un reproductor de audio, no sólo realzas la interactividad de tu plataforma, sino que también mejoras la presentación de contenido multimedia de manera profesional y dinámica. Vamos a aprender cómo podemos lograr esto, integrando paso a paso un reproductor visualmente atractivo usando WaveSurfer.js.
WaveSurfer.js es una potente librería JavaScript que te permite visualizar archivos de audio en forma de ondas o audiograma, ofreciendo una experiencia auditivo-visual mejorada. Usa formatos populares como .wav o .mp3, y permite al usuario interactuar directamente con el audio. Para beneficiar tu proyecto con esta librería, sigue estos pasos:
Abre la terminal en tu proyecto Angular.
Instala WaveSurfer.js utilizando el siguiente comando:
npm install wavesurfer.js
Una vez instalada, estás listo para integrarla en tu proyecto al crear un componente específico para su uso.
Para mantener una estructura modular y reusabilidad del código, vamos a implementar nuestro reproductor de audio dentro de un componente Angular. Aquí te indicamos cómo configurar este componente:
Crea un componente llamado 'WaveAudio':
ng generate component components/WaveAudio
Abre tu archivo de componente recién creado y procede a importar WaveSurfer.js:
import WaveSurfer from 'wavesurfer.js';
Define una propiedad en el componente que reciba la URL del audio como un @Input()
:
import { Component, Input, AfterViewInit, ElementRef, ViewChild } from '@angular/core';
@Component({
selector: 'app-wave-audio',
templateUrl: './wave-audio.component.html',
styleUrls: ['./wave-audio.component.css']
})
export class WaveAudioComponent implements AfterViewInit {
@Input() audioURL!: string;
@ViewChild('wave') container!: ElementRef;
ngAfterViewInit() {
const waveSurfer = WaveSurfer.create({
container: this.container.nativeElement,
url: this.audioURL
});
}
}
En Angular, el ciclo de vida de un componente es crucial para manejar librerías externas, que necesitan referencias a elementos del DOM que ya han sido renderizados. El hook ngAfterViewInit
es esencial para este propósito:
Usa ngAfterViewInit
para inicializar WaveSurfer después de que la vista y sus elementos hijos hayan sido renderizados.
Accede al contenedor del audiograma con el decorador @ViewChild
, asegurándote de asignar un identificador al contenedor en tu HTML:
<div #wave></div>
Este método garantiza que cuando WaveSurfer recibe la referencia al contenedor (div), ya estará disponible y listo para usar.
Con esta implementación, no solo entregas un componente de audio elegante y profesional, sino que exploras el amplio alcance de Angular y otras bibliotecas JavaScript, enriqueciendo así la experiencia del usuario en tu plataforma web. ¡No dejes de experimentar y personalizar según las necesidades de tu proyecto!
Aportes 6
Preguntas 1
✅
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?