/**
* videojs-record
* @version 2.0.4
* @see https://github.com/collab-project/videojs-record
* @copyright 2014-2017 Collab
* @license MIT
*/
!function e(t,i,r){function o(a,s){if(!i[a]){if(!t[a]){var c="function"==typeof require&&require;if(!s&&c)return c(a,!0);if(n)return n(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var l=i[a]={exports:{}};t[a][0].call(l.exports,function(e){var i=t[a][1][e];return o(i||e)},l,l.exports,e,t,i,r)}return i[a].exports}for(var n="function"==typeof require&&require,a=0;a"})}}]),t}();o.registerComponent("AnimationDisplay",n),i.default=n},{}],2:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i"})}}]),t}();o.registerComponent("RecordCanvas",n),i.default=n},{}],5:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i-1&&(i=i.split(";")[0]),e.name=t.getTime()+i}},{key:"onStopRecording",value:function(e){this.recordedData=e,this.addFileInfo(this.recordedData),this.dispose(),this.trigger("recordComplete")}},{key:"saveAs",value:function(e){var t=e[Object.keys(e)[0]];if(void 0!==navigator.msSaveOrOpenBlob)return navigator.msSaveOrOpenBlob(this.recordedData,t);if(void 0!==navigator.msSaveBlob)return navigator.msSaveBlob(this.recordedData,t);var i=document.createElement("a");i.href=URL.createObjectURL(this.recordedData),i.download=t,i.style="display:none;opacity:0;color:transparent;",(document.body||document.documentElement).appendChild(i),"function"==typeof i.click?i.click():(i.target="_blank",i.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))),URL.revokeObjectURL(i.href)}}]),t}();videojs.RecordEngine=n,o.registerComponent("RecordEngine",n),i.RecordEngine=n,i.RECORDRTC="recordrtc",i.LIBVORBISJS="libvorbis.js",i.RECORDERJS="recorder.js",i.LAMEJS="lamejs",i.OPUSRECORDER="opus-recorder"},{}],9:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(e){return e===Object(e)||!0===e};i.getRecorderMode=function(e,t,i,o){return r(e)?"image_only":r(o)?"animation":r(t)&&!r(i)?"audio_only":r(t)&&r(i)?"audio_video":!r(t)&&r(i)?"video_only":void 0},i.IMAGE_ONLY="image_only",i.AUDIO_ONLY="audio_only",i.VIDEO_ONLY="video_only",i.AUDIO_VIDEO="audio_video",i.ANIMATION="animation"},{}],10:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});var r=function(){function e(e,t){for(var i=0;i=i&&parseInt(r[i],10)};i.detectBrowser=o,i.isEdge=function(){return"edge"===o().browser},i.isOpera=function(){return!!r.default.opera||-1!==navigator.userAgent.indexOf("OPR/")},i.isChrome=function(){return"chrome"===o().browser},i.isSafari=function(){return"safari"===o().browser}},{}],13:[function(e,t,i){"use strict";Object.defineProperty(i,"__esModule",{value:!0});i.default=function(e,t,i){e=e<0?0:e,t=t||e;var r=Math.floor(e%60),o=Math.floor(e/60%60),n=Math.floor(e/3600),a=Math.floor(t/60%60),s=Math.floor(t/3600),c=Math.floor(1e3*(e-r));return(isNaN(e)||e===1/0)&&(n=o=r=c="-"),t>0&&t0||s>0?n+":":"",o=((n||a>=10)&&o<10?"0"+o:o)+":",r=r<10?"0"+r:r,n+o+r+c}},{}],14:[function(e,t,i){(function(e){var i;i="undefined"!=typeof window?window:void 0!==e?e:"undefined"!=typeof self?self:{},t.exports=i}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],15:[function(e,t,i){(function(i){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var o="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},n=function(){function e(e,t){for(var i=0;i0&&(this.engine.timeSlice=this.recordTimeSlice,this.engine.onTimeStamp=this.onTimeStamp.bind(this)),this.engine.setup(this.stream,this.mediaType,this.debug);[this.player.controlBar.currentTimeDisplay,this.player.controlBar.timeDivider,this.player.controlBar.durationDisplay].forEach(function(e){void 0!==e&&(e.el().style.display="block",e.show())}),this.player.recordToggle.show()}else this.player.recordIndicator.disable(),this.retrySnapshot(),this.player.cameraButton.onStop(),this.player.cameraButton.show();this.getRecordType()!==m.AUDIO_ONLY?(this.mediaElement=this.player.el().firstChild,this.mediaElement.controls=!1,this.mediaElement.muted=!0,this.displayVolumeControl(!1),this.load(this.stream),this.player.one("loadedmetadata",function(){t.mediaElement.play(),t.player.trigger("deviceReady")})):this.player.trigger("deviceReady")}},{key:"onDeviceError",value:function(e){this._deviceActive=!1,this.player.deviceErrorCode=e,this.player.trigger("deviceError")}},{key:"start",value:function(){var e=this;if(!this.isProcessing()){switch(this._recording=!0,this.player.controlBar.playToggle.hide(),this.off(this.player,"timeupdate",this.playbackTimeUpdate),this.off(this.player,"ended",this.playbackTimeUpdate),this.getRecordType()){case m.AUDIO_ONLY:this.surfer.setupPlaybackEvents(!1),this.surfer.surfer.microphone.paused=!1,this.surfer.liveMode=!0,this.surfer.surfer.microphone.play();break;case m.VIDEO_ONLY:case m.AUDIO_VIDEO:this.startVideoPreview();break;case m.ANIMATION:this.player.recordCanvas.hide(),this.player.animationDisplay.hide(),this.mediaElement.style.display="block",this.captureFrame().then(function(t){e.startVideoPreview()})}switch(this.getRecordType()){case m.IMAGE_ONLY:this.createSnapshot(),this.player.trigger("startRecord");break;case m.VIDEO_ONLY:case m.AUDIO_VIDEO:case m.ANIMATION:this.player.one("loadedmetadata",function(){e.startRecording()});break;default:this.startRecording()}}}},{key:"startRecording",value:function(){this.paused=!1,this.pauseTime=this.pausedTime=0,this.startTime=(new Date).getTime(),this.countDown=this.player.setInterval(this.onCountDown.bind(this),100),void 0!==this.engine&&this.engine.dispose(),this.engine.start(),this.player.trigger("startRecord")}},{key:"stop",value:function(){this.isProcessing()||(this._recording=!1,this._processing=!0,this.getRecordType()!==m.IMAGE_ONLY?(this.player.trigger("stopRecord"),this.player.clearInterval(this.countDown),this.engine&&this.engine.stop()):this.player.recordedData&&this.player.trigger("finishRecord"))}},{key:"stopDevice",value:function(){this.isRecording()?(this.player.one("finishRecord",this.stopStream.bind(this)),this.stop()):this.stopStream()}},{key:"stopStream",value:function(){if(this.stream){if(this._deviceActive=!1,this.getRecordType()===m.AUDIO_ONLY)return void this.surfer.surfer.microphone.stopDevice();this.stream.getTracks().forEach(function(e){e.stop()})}}},{key:"pause",value:function(){this.paused||(this.pauseTime=(new Date).getTime(),this.paused=!0,this.engine.pause())}},{key:"resume",value:function(){this.paused&&(this.pausedTime+=(new Date).getTime()-this.pauseTime,this.engine.resume(),this.paused=!1)}},{key:"onRecordComplete",value:function(){var e=this;switch(this.player.recordedData=this.engine.recordedData,this.player.controlBar.playToggle.removeClass("vjs-ended"),this.player.controlBar.playToggle.show(),this.player.trigger("finishRecord"),this.getRecordType()){case m.AUDIO_ONLY:this.surfer.pause(),this.surfer.setupPlaybackEvents(!0),this.player.loadingSpinner.show(),this.surfer.surfer.once("ready",function(){e._processing=!1}),this.load(this.player.recordedData);break;case m.VIDEO_ONLY:case m.AUDIO_VIDEO:this.player.one("pause",function(){e._processing=!1,e.player.loadingSpinner.hide(),e.setDuration(e.streamDuration),e.on(e.player,"timeupdate",e.playbackTimeUpdate),e.on(e.player,"ended",e.playbackTimeUpdate),e.getRecordType()===m.AUDIO_VIDEO&&(e.mediaElement.muted=!1,e.displayVolumeControl(!0)),(0,y.isChrome)()&&e.getRecordType()===m.AUDIO_VIDEO?e.load(e.player.recordedData.video):e.load(e.player.recordedData)}),this.player.pause();break;case m.ANIMATION:this._processing=!1,this.player.loadingSpinner.hide(),this.setDuration(this.streamDuration),this.mediaElement.style.display="none",this.player.recordCanvas.show(),this.player.pause(),this.on(this.player,"play",this.showAnimation),this.on(this.player,"pause",this.hideAnimation)}}},{key:"onCountDown",value:function(){if(!this.paused){var e=(new Date).getTime(),t=this.maxLength,i=(e-(this.startTime+this.pausedTime))/1e3;this.streamDuration=i,i>=t&&(i=t,this.stop()),this.setDuration(t),this.setCurrentTime(i,t),this.player.trigger("progressRecord")}}},{key:"getCurrentTime",value:function(){var e=isNaN(this.streamCurrentTime)?0:this.streamCurrentTime;return this.getRecordType()===m.AUDIO_ONLY&&(e=this.surfer.getCurrentTime()),e}},{key:"setCurrentTime",value:function(e,t){switch(e=isNaN(e)?0:e,t=isNaN(t)?0:t,this.getRecordType()){case m.AUDIO_ONLY:this.surfer.setCurrentTime(e,t);break;case m.VIDEO_ONLY:case m.AUDIO_VIDEO:case m.ANIMATION:this.streamCurrentTime=Math.min(e,t),this.player.controlBar.currentTimeDisplay.formattedTime_=this.player.controlBar.currentTimeDisplay.contentEl().lastChild.textContent=(0,p.default)(this.streamCurrentTime,t,this.msDisplayMax)}}},{key:"getDuration",value:function(){return isNaN(this.streamDuration)?0:this.streamDuration}},{key:"setDuration",value:function(e){switch(e=isNaN(e)?0:e,this.getRecordType()){case m.AUDIO_ONLY:this.surfer.setDuration(e);break;case m.VIDEO_ONLY:case m.AUDIO_VIDEO:case m.ANIMATION:this.player.controlBar.durationDisplay.formattedTime_=this.player.controlBar.durationDisplay.contentEl().lastChild.textContent=(0,p.default)(e,e,this.msDisplayMax)}}},{key:"load",value:function(e){switch(this.getRecordType()){case m.AUDIO_ONLY:this.surfer.load(e);break;case m.IMAGE_ONLY:case m.VIDEO_ONLY:case m.AUDIO_VIDEO:case m.ANIMATION:e instanceof Blob||e instanceof File?(0,f.default)(e,this.mediaElement,!1):(0,f.default)(e,this.mediaElement,!0)}}},{key:"saveAs",value:function(e){this.engine&&void 0!==e&&this.engine.saveAs(e)}},{key:"dispose",value:function(){this.player.off("ready"),this.player.off("userinactive"),this.player.off("loadedmetadata"),this.engine&&(this.engine.dispose(),this.engine.off("recordComplete",this.engineStopCallback)),this.stop(),this.stopDevice(),this.player.clearInterval(this.countDown),this.getRecordType()==m.AUDIO_ONLY&&this.surfer&&this.surfer.destroy(),this.resetState(),function e(t,i,r){null===t&&(t=Function.prototype);var o=Object.getOwnPropertyDescriptor(t,i);if(void 0===o){var n=Object.getPrototypeOf(t);return null===n?void 0:e(n,i,r)}if("value"in o)return o.value;var a=o.get;if(void 0!==a)return a.call(r)}(t.prototype.__proto__||Object.getPrototypeOf(t.prototype),"dispose",this).call(this)}},{key:"destroy",value:function(){this.player.dispose()}},{key:"reset",value:function(){var e=this;switch(this.engine&&(this.engine.dispose(),this.engine.off("recordComplete",this.engineStopCallback)),this.stop(),this.stopDevice(),this.player.clearInterval(this.countDown),this.loadOptions(),this.resetState(),this.setDuration(this.maxLength),this.setCurrentTime(0),this.player.reset(),this.getRecordType()){case m.AUDIO_ONLY:this.surfer&&this.surfer.surfer&&this.surfer.surfer.empty();break;case m.IMAGE_ONLY:case m.ANIMATION:this.player.recordCanvas.hide(),this.player.cameraButton.hide()}this.player.controlBar.playToggle.hide(),this.player.deviceButton.show(),this.player.recordToggle.hide(),this.player.one("loadedmetadata",function(){e.setDuration(e.maxLength)})}},{key:"resetState",value:function(){this._recording=!1,this._processing=!1,this._deviceActive=!1,this.devices=[]}},{key:"getRecordType",value:function(){return(0,m.getRecorderMode)(this.recordImage,this.recordAudio,this.recordVideo,this.recordAnimation)}},{key:"createSnapshot",value:function(){var e=this;this.captureFrame().then(function(t){e.player.recordedData=t.toDataURL("image/png"),e.mediaElement.style.display="none",e.player.recordCanvas.show(),e.stop()})}},{key:"retrySnapshot",value:function(){this._processing=!1,this.player.recordCanvas.hide(),this.player.el().firstChild.style.display="block"}},{key:"captureFrame",value:function(){var e=this,t=(0,y.detectBrowser)(),i=this.player.recordCanvas.el().firstChild;return i.width=this.player.width(),i.height=this.player.height(),new Promise(function(r,n){if("chrome"===t.browser&&t.version>=60&&("undefined"==typeof ImageCapture?"undefined":o(ImageCapture))===("undefined"==typeof Function?"undefined":o(Function)))try{var a=e.stream.getVideoTracks()[0];return void new ImageCapture(a).takePhoto().then(function(e){return createImageBitmap(e)}).then(function(t){e.drawCanvas(i,t),r(i)})}catch(e){}e.drawCanvas(i,e.mediaElement),r(i)})}},{key:"drawCanvas",value:function(e,t){e.getContext("2d").drawImage(t,0,0,e.width,e.height)}},{key:"startVideoPreview",value:function(){this.off("timeupdate"),this.off("durationchange"),this.off("loadedmetadata"),this.off("play"),this.mediaElement.muted=!0,this.displayVolumeControl(!1),this.load(this.stream),this.mediaElement.play()}},{key:"showAnimation",value:function(){var e=this.player.animationDisplay.el().firstChild;e.width=this.player.width(),e.height=this.player.height(),this.player.recordCanvas.hide(),(0,f.default)(this.player.recordedData,e,!1),this.player.animationDisplay.show()}},{key:"hideAnimation",value:function(){this.player.recordCanvas.show(),this.player.animationDisplay.hide()}},{key:"playbackTimeUpdate",value:function(){this.setCurrentTime(this.player.currentTime(),this.streamDuration)}},{key:"onTimeStamp",value:function(e,t){this.player.currentTimestamp=e,this.player.allTimestamps=t;var i;switch(this.getRecordType()){case m.AUDIO_ONLY:i=this.engine.engine.audioRecorder;break;case m.ANIMATION:i=this.engine.engine.gifRecorder;break;default:i=this.engine.engine.videoRecorder}(i=i.getInternalRecorder())instanceof MediaStreamRecorder==!0&&(this.player.recordedData=i.getArrayOfBlobs()),this.player.trigger("timestamp")}},{key:"enumerateDevices",value:function(){var e=this;if(!navigator.mediaDevices||!navigator.mediaDevices.enumerateDevices)return this.player.enumerateErrorCode="enumerateDevices() not supported.",void this.player.trigger("enumerateError");navigator.mediaDevices.enumerateDevices(this).then(function(t){e.devices=[],t.forEach(function(t){e.devices.push(t)}),e.player.trigger("enumerateReady")}).catch(function(t){e.player.enumerateErrorCode=t,e.player.trigger("enumerateError")})}},{key:"displayVolumeControl",value:function(e){void 0!==this.player.controlBar.volumePanel&&(e=!0===e?"flex":"none",this.player.controlBar.volumePanel.el().style.display=e)}}]),t}();O.VERSION="2.0.4",g.default.Record=O,g.default.registerPlugin("record",O),t.exports={Record:O}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[15]);