UNPKG

@plupyt/mediaplayer

Version:

Reproductor de video

57 lines (49 loc) 1.72 kB
import MediaPlayer from '../../MediaPlayer' import Ads, { Ad } from './Ads' class AdsPlugin { private ads: Ads private player: MediaPlayer private media: HTMLMediaElement private currentAd: Ad private adsContainer: HTMLElement constructor() { this.ads = Ads.getInstance() this.adsContainer = document.createElement('div') this.handleTimeUpdate = this.handleTimeUpdate.bind(this) } run(player: MediaPlayer) { this.player = player this.player.container.appendChild(this.adsContainer) this.media = this.player.media this.media.addEventListener('timeupdate', this.handleTimeUpdate) } private handleTimeUpdate() { const currentTime = Math.floor(this.media.currentTime) if(currentTime % 30 === 0) { this.renderAd() } } private renderAd() { if(this.currentAd) { return } const ad = this.ads.getAd() this.currentAd = ad this.adsContainer.innerHTML = ` <div class="ads"> <a class="ads__link" href="${this.currentAd.url}" target="_blank"> <img class="ads__img" src="${this.currentAd.imageUrl}" /> <div class="ads__info"> <h5 class="ads__title">${this.currentAd.title}</h5> <p class="ads__body">${this.currentAd.body}</p> </div> </a> </div> ` setTimeout(() => { this.currentAd = null this.adsContainer.innerHTML = '' }, 10000) } } export default AdsPlugin