UNPKG

@alecefe/platzimediaplayer

Version:

An implementation of a MediaPlayer through the Professional Javascript Course

54 lines (42 loc) 1.17 kB
class MediaPlayer { media: HTMLMediaElement; plugins: any[]; container: HTMLElement; constructor(config) { this.media = config.el; this.plugins = config.plugins || []; this.initPlayer(); this.initPlugins(); } play() { this.media.play(); } pause() { this.media.pause(); } togglePlay() { (this.media.paused) ? this.media.play() : this.media.pause(); } initPlayer() { this.container = document.createElement('div'); this.media.parentNode.insertBefore(this.container, this.media); this.container.appendChild(this.media); this.container.style.position = 'relative'; } private initPlugins() { this.plugins.forEach(plugin => { plugin.run(this); }); } mute() { this.media.muted = true; } unmute() { this.media.muted = false; } toggleMute() { // (this.media.muted)? this.media.muted = false : this.media.muted = true; (this.media.muted) ? this.unmute() : this.mute(); } } export default MediaPlayer;