Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

608
Vistas
Angular 2: acceda a reproducir y pausar la etiqueta de video html5 dentro del componente

Soy nuevo en angular2 y he estado tratando de acceder a la etiqueta de video html5 dentro de mi componente. Aunque usé el decorador @ViewChild para acceder a la etiqueta de video, no pude acceder a las funciones de reproducción y pausa. Mi archivo player.html es

 <video id="thisVideo" #videoplayer *ngIf="openPlayer" controls autoplay="autoplay" preload="auto" [poster]="src.thumbnailUrlHighRes" width="640"> <source [src]="src.videoURL" type="video/mp4" /> <p>Your browser does not support the video tag.</p> </video>

La reproducción automática del video está configurada como verdadera. Necesito reproducir y pausar el video usando la barra espaciadora y para esto he agregado un detector de eventos al componente host. Pero el problema es que no puedo acceder a la función de reproducción y pausa de la etiqueta de video dentro del detector de eventos. ¿Alguien puede darme alguna idea?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Este tema ya ha sido respondido, sin embargo, creo que hay una forma más limpia de lograr esto utilizando variables de referencia de plantilla y ViewChild .

En la plantilla, puede hacer referencia a su video de esta manera, con un # :

 <video controls #myVideo> <source src="http://my-url/video.mp4" type="video/mp4" /> Browser not supported </video> <a (click)="playVideo()">Play video</a>

Y en su archivo .ts:

 import { Component, OnInit, ViewChild, ElementRef } from '@angular/core'; @Component({ selector: 'app-my-component', templateUrl: './my-component.component.html', styleUrls: ['./my-component.component.scss'] }) export class MyComponent implements OnInit { @ViewChild('myVideo') myVideo: ElementRef; // Prior to Angular 8 // @ViewChild('myVideo', { static: true }) myVideo: ElementRef; => Angular 8 constructor() { } ngOnInit() { } playVideo() { /** * You are accessing a dom element directly here, * so you need to call "nativeElement" first. */ this.myVideo.nativeElement.play(); } }
about 4 years ago · Santiago Trujillo Denunciar

0

Lo tengo trabajando con esto:

 @HostListener('document:keyup', ['$event']) onKeyUp(ev:KeyboardEvent) { if(ev.code == "Space") { let vid = <HTMLVideoElement>document.getElementById("thisVideo"); if(vid.paused) { vid.play(); } else { vid.pause(); } } }
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda