@abraham_0101/platzimediaplayer
Version:
60 lines (48 loc) • 973 B
text/typescript
class MediaPlayer {
media: HTMLMediaElement;
plugins: Array<any>
container:HTMLElement
constructor(config) {
this.media = config.el
this.plugins = config.plugins || []
this.initPlayer()
this.initPlugins()
}
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 initPlugins() {
this.plugins.forEach(plugin => {
plugin.run(this)
})
}
play() {
this.media.play()
}
pause() {
this.media.pause()
}
muted() {
this.media.muted = true
}
unmuted() {
if (this.media.muted) {
this.media.muted = false
}
else {
this.media.muted = true
}
}
togglePlay() {
if (this.media.paused) {
this.media.play()
}
else {
this.media.pause()
}
}
}
export default MediaPlayer