vlitejs
Version:
vLitejs is a fast and lightweight Javascript library for customizing video and audio player in Javascript with a minimalist theme (HTML5, Youtube, Vimeo, Dailymotion)
8 lines (7 loc) • 1.72 kB
JavaScript
/*!
* @license MIT
* @name vlitejs
* @version 7.4.0
* @copyright 2025 Yoriiis
*/
class e{constructor({player:e,options:t={}}){var s,i;this.providers=["html5","youtube","dailymotion","vimeo"],this.types=["video","audio"],this.player=e,this.seekTime=null!==(s=t.seekTime)&&void 0!==s?s:5,this.volumeStep=null!==(i=t.volumeStep)&&void 0!==i?i:.1,this.onKeydown=this.onKeydown.bind(this)}init(){this.addEvents()}addEvents(){this.player.elements.container.addEventListener("keydown",this.onKeydown)}onKeydown(e){const t=document.activeElement,{keyCode:s}=e;[9,32,37,39].includes(s)&&this.player.Vlitejs.autoHideGranted&&(t===this.player.elements.container||(null==t?void 0:t.closest(".v-vlite")))&&(this.player.Vlitejs.stopAutoHideTimer(),this.player.Vlitejs.startAutoHideTimer()),![37,39].includes(s)||t!==this.player.elements.container&&t!==this.player.elements.progressBar||(e.preventDefault(),this.fastForward(37===s?"backward":"forward")),![38,40].includes(s)||t!==this.player.elements.container&&t!==this.player.elements.volume||(e.preventDefault(),38===s?this.increaseVolume():this.decreaseVolume()),32===s&&t===this.player.elements.container&&this.player.controlBar.togglePlayPause(e)}fastForward(e){this.player.getCurrentTime().then((t=>{this.player.seekTo("backward"===e?t-this.seekTime:t+this.seekTime)}))}increaseVolume(){this.player.isMuted&&this.player.unMute(),this.player.getVolume().then((e=>{this.player.setVolume(Math.min(Math.round(10*(e+this.volumeStep))/10,1))}))}decreaseVolume(){this.player.getVolume().then((e=>{this.player.setVolume(Math.max(Math.round(10*(e-this.volumeStep))/10,0))}))}destroy(){this.player.elements.container.removeEventListener("keydown",this.onKeydown)}}export{e as default};