/*! * FlvPlayer.js v1.1.8 * Github: https://github.com/zhw2590582/FlvPlayer#readme * (c) 2017-2023 Harvey Zack * Released under the MIT License. */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).FlvplayerControl=t()}(this,(function(){"use strict";function e(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function t(e,t){return e(t={exports:{}},t.exports),t.exports}var l=t((function(e){function t(l){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(l)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})),r=e(l),n=t((function(e){var t=l.default;e.exports=function(e,l){if("object"!==t(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,l||"default");if("object"!==t(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===l?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports}));e(n);var o=t((function(e){var t=l.default;e.exports=function(e){var l=n(e,"string");return"symbol"===t(l)?l:String(l)},e.exports.__esModule=!0,e.exports.default=e.exports}));e(o);var a=e(t((function(e){function t(e,t){for(var l=0;lrr',pause:'rr',volume:'rrr',volumeClose:'rrr',fullscreen:'r\n\tr\n\tr\n\tr\n\tr',loading:'rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr'},s=Object.keys(c).reduce((function(e,t){return e[t]='').concat(c[t],""),e}),{});function f(e){var t=Math.floor(e/3600),l=Math.floor((e-3600*t)/60),r=Math.floor(e-3600*t-60*l);return(t>0?[t,l,r]:[l,r]).map((function(e){return e<10?"0".concat(e):String(e)})).join(":")}function p(e,t){var l,r,n=!1;return function o(){for(var a=arguments.length,i=new Array(a),c=0;c2&&void 0!==arguments[2])||arguments[2],r=getComputedStyle(e,null).getPropertyValue(t);return l?parseFloat(r):r}const d=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],m=(()=>{if("undefined"==typeof document)return!1;const e=d[0],t={};for(const l of d){const r=l?.[1];if(r in document){for(const[r,n]of l.entries())t[e[r]]=n;return t}}return!1})(),h={change:m.fullscreenchange,error:m.fullscreenerror};let b={request:(e=document.documentElement,t)=>new Promise(((l,r)=>{const n=()=>{b.off("change",n),l()};b.on("change",n);const o=e[m.requestFullscreen](t);o instanceof Promise&&o.then(n).catch(r)})),exit:()=>new Promise(((e,t)=>{if(!b.isFullscreen)return void e();const l=()=>{b.off("change",l),e()};b.on("change",l);const r=document[m.exitFullscreen]();r instanceof Promise&&r.then(l).catch(t)})),toggle:(e,t)=>b.isFullscreen?b.exit():b.request(e,t),onchange(e){b.on("change",e)},onerror(e){b.on("error",e)},on(e,t){const l=h[e];l&&document.addEventListener(l,t,!1)},off(e,t){const l=h[e];l&&document.removeEventListener(l,t,!1)},raw:m};Object.defineProperties(b,{isFullscreen:{get:()=>Boolean(document[m.fullscreenElement])},element:{enumerable:!0,get:()=>document[m.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[m.fullscreenEnabled])}}),m||(b={isEnabled:!1});var g=b;function x(e,t){var l=e.options.poster,r=e.events.proxy,n=e.player;r(window,["click","contextmenu"],(function(e){e.composedPath().indexOf(n.$container)>-1?t.isFocus=!0:t.isFocus=!1})),t.autoSize(),e.on("resize",(function(){t.autoSize()})),e.on("scripMeta",(function(){t.autoSize()})),r(window,"orientationchange",(function(){setTimeout((function(){t.autoSize()}),300)})),l&&(e.once("play",(function(){t.$poster.style.display="none"})),e.once("seeked",(function(){t.$poster.style.display="none"}))),e.on("waiting",(function(){t.loading=!0})),e.on("ended",(function(){t.loading=!1})),e.on("timeupdate",(function(){t.loading=!1})),r(t.$play,"click",(function(){n.play()})),r(t.$pause,"click",(function(){n.pause()}));var o=p((function(e){var l=u(e/n.duration,0,1);t.$loaded.style.width="".concat(100*l,"%")}),500);e.on("videoLoaded",(function(t){e.options.live||o(t)}));var a=p((function(e){t.$played.style.width="".concat(e/n.duration*100,"%"),t.$current.innerText=f(e)}),500);e.on("timeupdate",(function(t){e.options.live||a(t)})),e.on("seeked",(function(t){e.options.live||a(t)})),e.on("play",(function(){t.$play.style.display="none",t.$pause.style.display="block"})),e.on("ended",(function(){t.controls=!0,t.$play.style.display="block",t.$pause.style.display="none"})),e.on("loop",(function(){t.controls=!1})),e.on("pause",(function(){t.$play.style.display="block",t.$pause.style.display="none",t.loading=!1})),e.on("scripMeta",(function(){e.options.live||(t.$duration.innerText=f(n.duration))})),r(t.$fullscreen,"click",(function(){t.fullscreen?t.fullscreen=!1:t.fullscreen=!0}));var i=function(e,t,l){var r;function n(){for(var n=arguments.length,o=new Array(n),a=0;a'):"",'
').concat(s.loading,'
').concat(l.live?"":'
','
').concat(s.play,'
').concat(s.pause,"
").concat(l.hasAudio?'
'.concat(s.volume,'
').concat(s.volumeClose,"
").concat(e.isMobile?"":'
',"
"):"","\n ").concat(l.live?"":'
00:00 / 00:00
','
').concat(s.fullscreen,"
")),Object.defineProperty(t,"$poster",{value:l.container.querySelector(".flvplayer-poster")}),Object.defineProperty(t,"$loading",{value:l.container.querySelector(".flvplayer-loading")}),Object.defineProperty(t,"$controls",{value:l.container.querySelector(".flvplayer-controls")}),Object.defineProperty(t,"$state",{value:l.container.querySelector(".flvplayer-state")}),Object.defineProperty(t,"$play",{value:l.container.querySelector(".flvplayer-play")}),Object.defineProperty(t,"$pause",{value:l.container.querySelector(".flvplayer-pause")}),Object.defineProperty(t,"$current",{value:l.container.querySelector(".flvplayer-current")}),Object.defineProperty(t,"$duration",{value:l.container.querySelector(".flvplayer-duration")}),Object.defineProperty(t,"$volumeOn",{value:l.container.querySelector(".flvplayer-volume-on")}),Object.defineProperty(t,"$volumeOff",{value:l.container.querySelector(".flvplayer-volume-off")}),Object.defineProperty(t,"$volumePanel",{value:l.container.querySelector(".flvplayer-volume-panel")}),Object.defineProperty(t,"$volumeHandle",{value:l.container.querySelector(".flvplayer-volume-panel-handle")}),Object.defineProperty(t,"$fullscreen",{value:l.container.querySelector(".flvplayer-fullscreen")}),Object.defineProperty(t,"$progress",{value:l.container.querySelector(".flvplayer-controls-progress")}),Object.defineProperty(t,"$loaded",{value:l.container.querySelector(".flvplayer-loaded")}),Object.defineProperty(t,"$played",{value:l.container.querySelector(".flvplayer-played")}),Object.defineProperty(t,"$indicator",{value:l.container.querySelector(".flvplayer-indicator")})}(t,this),function(e){var t=e.events.proxy,l=e.player,r=document.createElement("object");r.setAttribute("aria-hidden","true"),r.setAttribute("tabindex",-1),r.type="text/html",r.data="about:blank",y(r,{display:"block",position:"absolute",top:"0",left:"0",height:"100%",width:"100%",overflow:"hidden",pointerEvents:"none",zIndex:"-1"});var n=l.width,o=l.height;t(r,"load",(function(){t(r.contentDocument.defaultView,"resize",(function(){l.width===n&&l.height===o||(n=l.width,o=l.height,e.emit("resize"))}))})),l.$container.appendChild(r)}(t),function(e,t){var l=e.player;Object.defineProperty(t,"controls",{get:function(){return l.$player.classList.contains("flvplayer-controls-show")},set:function(e){e?l.$player.classList.add("flvplayer-controls-show"):l.$player.classList.remove("flvplayer-controls-show")}}),Object.defineProperty(t,"loading",{get:function(){return l.$player.classList.contains("flvplayer-loading-show")},set:function(e){e?l.$player.classList.add("flvplayer-loading-show"):l.$player.classList.remove("flvplayer-loading-show")}});try{var r=function(){t.fullscreen?l.$container.classList.add("flvplayer-fullscreen"):l.$container.classList.remove("flvplayer-fullscreen"),t.autoSize()};g.on("change",r),e.events.destroys.push((function(){g.off("change",r)}))}catch(e){}Object.defineProperty(t,"fullscreen",{get:function(){return g.isFullscreen||l.$container.classList.contains("flvplayer-fullscreen-web")},set:function(e){if(e)try{g.request(l.$container)}catch(e){t.webFullscreen=!0}else try{g.exit()}catch(e){t.webFullscreen=!1}}}),Object.defineProperty(t,"webFullscreen",{set:function(e){if(e){l.$container.classList.add("flvplayer-fullscreen-web");var t=document.body,r=t.clientHeight,n=t.clientWidth,o=l.$player,a=o.clientHeight,i=o.clientWidth;if(n/rn){var o=(e-t*n)/2;l.$container.style.padding="0 ".concat(o,"px")}else{var a=(t-e/n)/2;l.$container.style.padding="".concat(a,"px 0")}}})}(t,this),x(t,this),t.options.hotkey&&function(e,t){var l=e.events.proxy,r=e.player,n={};function o(e,t){n[e]?n[e].push(t):n[e]=[t]}o(27,(function(){t.fullscreen&&(r.fullscreen=!1)})),o(32,(function(){r.toggle()})),o(37,(function(){r.currentTime-=5})),o(38,(function(){r.volume+=.1})),o(39,(function(){r.currentTime+=5})),o(40,(function(){r.volume-=.1})),l(window,"keydown",(function(e){if(t.isFocus){var l=document.activeElement.tagName.toUpperCase(),r=document.activeElement.getAttribute("contenteditable");if("INPUT"!==l&&"TEXTAREA"!==l&&""!==r&&"true"!==r){var o=n[e.keyCode];o&&(e.preventDefault(),o.forEach((function(e){return e()})))}}}))}(t,this)}));return window.FlvplayerControl=w,w}));