@tsparticles/plugin-export-video
Version:
tsParticles export video plugin
2 lines • 2.28 kB
JavaScript
/*! For license information please see tsparticles.plugin.export.video.min.js.LICENSE.txt */
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("@tsparticles/engine"));else if("function"==typeof define&&define.amd)define(["@tsparticles/engine"],t);else{var o="object"==typeof exports?t(require("@tsparticles/engine")):t(e.window);for(var r in o)("object"==typeof exports?exports:e)[r]=o[r]}}(this,(e=>(()=>{var t={303:t=>{t.exports=e}},o={};function r(e){var n=o[e];if(void 0!==n)return n.exports;var s=o[e]={exports:{}};return t[e](s,s.exports,r),s.exports}r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};r.r(n),r.d(n,{loadExportVideoPlugin:()=>d});var s=r(303);const i=["webm","ogg","mp4","x-matroska"],p=["vp9","vp9.0","vp8","vp8.0","avc1","av1","h265","h.265","h264","h.264","opus","pcm","aac","mpeg","mp4a"];class a{constructor(e,t){this._supportedTypes=[],this._exportVideo=async e=>{const t=this._container.canvas.element;if(t)return new Promise((o=>{const r=t.captureStream(e.fps??this._container.actualOptions.fpsLimit),n=e.mimeType??this._supportedTypes[0],i=new MediaRecorder(r,{mimeType:n}),p=[];i.addEventListener("dataavailable",(e=>{p.push(e.data)})),i.addEventListener("stop",(()=>{o(new Blob(p,{type:n}))})),i.start(),setTimeout((()=>{i.stop()}),e.duration??5*s.millisecondsToSeconds)}))},this._container=e,this._engine=t,this._supportedTypes=function(){const e=e=>MediaRecorder.isTypeSupported(e),t=[];return i.forEach((o=>{const r=`video/${o}`;p.forEach((o=>[`${r};codecs=${o}`,`${r};codecs=${o.toUpperCase()}`].forEach((o=>{e(o)&&t.push(o)})))),e(r)&&t.push(r)})),t}()}async export(e,t){const o={supported:!1};if("video"===e)o.supported=!0,o.blob=await this._exportVideo(t);return o}}class c{constructor(e){this.id="export-video",this._engine=e}getPlugin(e){return Promise.resolve(new a(e,this._engine))}loadOptions(){}needsPlugin(){return!0}}async function d(e,t=!0){e.checkVersion("3.9.1"),await e.addPlugin(new c(e),t)}return n})()));