UNPKG

@adrianarroyoc/mediaplayer

Version:

Proyecto del Curso Profesional de JavaScript en Platzi

74 lines (63 loc) 1.58 kB
class MediaPlayer { media: HTMLMediaElement; plugins: Array<any>; container: HTMLElement; constructor(config) { this.media = config.el; this.plugins = config.plugins || []; this.initPlayer(); this.initiPlugins(); } initPlayer() { this.container = document.createElement('div'); this.container.style.position = 'relative'; this.media.parentNode.insertBefore(this.container, this.media); this.container.appendChild(this.media); } private initiPlugins() { /*const player = { play: () => this.play(), pause: () => this.pause(), media: this.media, get muted() { return this.media.muted; }, set muted(value) { this.media.muted = value; } };*/ this.plugins.forEach(plugin => { plugin.run(this); }); } play() { this.media.play(); } pause() { this.media.pause(); } togglePlay() { if (this.media.paused) { this.play(); } else { this.pause(); } } mute() { this.media.muted = true; } unmute() { this.media.muted = false; } toggleMute() { if (this.media.muted) { this.unmute(); } else { this.mute(); } } } export default MediaPlayer; //export const foo = "foo";