Introducción a Angular y Fundamentos

1

Aprende Angular 17

2

Creando tu primer proyecto en Angular

3

Implementando estilos

4

Mostrando elementos

5

Property Binding en Angular

6

Event Binding: click y doble click

7

Event binding: keydown

8

Modelo de reactividad con Signals

9

Creando un Signal en Angular

Estructuras de control en Angular

10

Directivas de control

11

Uso de ngFor

12

ngFor para objetos

13

Update Tasks

14

Uso de ngIf

15

Uso de ngSwitch y ngSwitchDefault

16

Controlando un input

17

Manejo de formularios en Angular

Alistando tu aplicación para producción

18

Estilos al modo Angular

19

Clases en Angular

20

Editing mode

21

Estados compuestos con computed

22

Usando effect para localStorage

23

Uso de ngbuild

24

Despliegue con Firebase Hosting

25

Nueva sintaxis en Angular

26

Directivas @For, @switch

27

Migrando a la nueva sintaxis de Angular v17

Componentes Reutilizables y Comunicación

28

Construyendo un e-commerce en Angular

29

Componentes en Angular

30

Mostrando los componentes

31

Angular DevTools

32

Uso de Inputs en Angular

33

Uso de Outputs en Angular

34

Componentes para Producto

Ciclo de vida de los componentes

35

Ciclo de vida de componentes

36

Ciclo de vida de componentes: ngOnChanges

37

Ciclo de vida de componentes: ngOnInit

38

Detectando cambios en los inputs

39

Evitando memory leaks con ngDestroy

40

Audio player con ngAfterViewInit

41

Creando la página "about us" o "conócenos"

Mejorando la interfaz del producto

42

Creando componente de productos

43

Creando el Header

44

Creando el carrito de compras

45

Comunicación padre e hijo

46

Calculando el total con ngOnChanges

47

El problema del prop drilling

48

Reactividad con signals en servicios

49

Entendiendo la inyección de dependencias

Integración y Datos

50

Obteniendo datos una REST API

51

Importaciones cortas en Typescript

52

Pipes en Angular

53

Construyendo tu propio pipe

54

Utilizando librerías de JavaScript en Angular

55

Conociendo las directivas

56

Deployando un proyecto en Vercel

Enrutamiento y Navegación

57

Ruta 404

58

Uso del RouterLink

59

Vistas anidadas

60

Uso del RouterLinkActive

61

Detalle de cada producto

62

Obteniendo datos del producto

63

Galería de imagenes

64

Detalle de la galería

Perfeccionando tu e-commerce

65

Mostrando categorias desde la API

66

Url Params

67

LazyLoading y Code Splitting

68

Aplicando LazyLoading

69

Prefetching

70

Usando la nueva sintaxis de Angular 17

71

Lanzando tu aplicación a producción

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Audio player con ngAfterViewInit

40/71
Recursos

¿Cómo implementar un reproductor de audio con Angular y WaveSurfer.js?

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.

¿Qué es WaveSurfer.js y cómo lo instalamos?

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:

  1. Abre la terminal en tu proyecto Angular.

  2. Instala WaveSurfer.js utilizando el siguiente comando:

    npm install wavesurfer.js
    
  3. Una vez instalada, estás listo para integrarla en tu proyecto al crear un componente específico para su uso.

¿Cómo crear y configurar un componente Angular para el reproductor?

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:

  1. Crea un componente llamado 'WaveAudio':

    ng generate component components/WaveAudio
    
  2. Abre tu archivo de componente recién creado y procede a importar WaveSurfer.js:

    import WaveSurfer from 'wavesurfer.js';
    
  3. 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
        });
      }
    }
    

¿Cómo usar ngAfterViewInit y referencias en el DOM?

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:

  1. Usa ngAfterViewInit para inicializar WaveSurfer después de que la vista y sus elementos hijos hayan sido renderizados.

  2. Accede al contenedor del audiograma con el decorador @ViewChild, asegurándote de asignar un identificador al contenedor en tu HTML:

    <div #wave></div>
    
  3. Este método garantiza que cuando WaveSurfer recibe la referencia al contenedor (div), ya estará disponible y listo para usar.

¿Qué más necesitas?

  • Asegúrate de manejar errores de inicialización de URL para garantizar una experiencia sin problemas. Siempre es una buena práctica proporcionar valores por defecto o condiciones de manejo.
  • Puedes personalizar las opciones de WaveSurfer.js para ajustar parámetros como el color de las ondas, el backend usado para reproducir el sonido y mucho más.

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

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

npm install --save wavesurfer.js
En JavaScript clásico se obtiene un elemento como `container = document.getElementById('wavecontainer')` angular nos ofrece otra forma de acceder a elementos del DOM `@ViewChild('wavecontainer') container!: ElementRef`
Por si alguien tiene conflictos al instalar la libreria pruebe de esta forma: ```js npm install wavesurfer.js --legacy-peer-deps ```
como hacen para que siempre les importe el CommonModule? siempre me toca improtarlo manualmente.
Si tienen un error en el localhost:4200/assets/audio.mp3 es porque no se esta reconociendo la ruta del audio, yo lo solucione agregando una linea en el archivo angular.json `"assets": [  ` `  "src/assets", //añado esta linea   ` ` ` `{      ` `"glob": "**/*",     ` ` ` `"input": "public"    ` `}  ` `]`