@galacean/effects-plugin-multimedia 2.9.0 → 2.9.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -3,6 +3,6 @@
3
3
  * Description: Galacean Effects player multimedia plugin
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 云垣
6
- * Version: v2.9.0
7
- */function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ge=e.ge||{},e.ge.multimediaPlugin={}),e.ge)}(this,function(e,t){"use strict";var i=function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}}),t.default=e,Object.freeze(t)}(t);function o(e,t,i,o,n,r,s){try{var a=e[r](s),u=a.value}catch(e){i(e);return}a.done?t(u):Promise.resolve(u).then(o,n)}function n(e){return function(){var t=this,i=arguments;return new Promise(function(n,r){var s=e.apply(t,i);function a(e){o(s,n,r,a,u,"next",e)}function u(e){o(s,n,r,a,u,"throw",e)}a(void 0)})}}function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}function u(e,t,i){return(u=a()?Reflect.construct:function(e,t,i){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return i&&r(n,i.prototype),n}).apply(null,arguments)}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return u(e,arguments,d(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),r(i,e)})(e)}function l(e,t,i,o){var n,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(r<3?n(s):r>3?n(t,i,s):n(t,i))||s);return r>3&&s&&Object.defineProperty(t,i,s),s}function h(e,t){var i,o,n,r={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(u){return function(a){if(i)throw TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(r=0)),r;)try{if(i=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,o=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!(n=(n=r.trys).length>0&&n[n.length-1])&&(6===a[0]||2===a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){r.label=a[1];break}if(6===a[0]&&r.label<n[1]){r.label=n[1],n=a;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(a);break}n[2]&&r.ops.pop(),r.trys.pop();continue}a=t.call(e,r)}catch(e){a=[6,e],o=0}finally{i=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}"function"==typeof SuppressedError&&SuppressedError;var p={2e3:"Autoplay permission for audio and video is not enabled"};function A(e,t,i){return f.apply(this,arguments)}function f(){return(f=n(function(e,i,o){var n;return h(this,function(r){return n=o.renderLevel,[2,Promise.all(e.map(function(r){if(t.passRenderLevel(r.renderLevel,n)){if(i===t.spec.MultimediaType.video){var s=new URL(function(e,t){if(!t.useHevcVideo)return e.url;var i=e.hevc;if(!(null==i?void 0:i.url)||!(null==i?void 0:i.codec))return e.url;var o=P(i.codec);return o&&b(o)?i.url:e.url}(r,o),location.href).href;return t.loadVideo(s)}if(i===t.spec.MultimediaType.audio)return m(new URL(r.url,location.href).href)}throw Error("Invalid "+i+" source: "+JSON.stringify(e)+".")}))]})})).apply(this,arguments)}function v(){return(v=n(function(){var e;return h(this,function(t){switch(t.label){case 0:(e=document.createElement("audio")).src="data:audio/mpeg;base64,//uQxAACFCEW8uewc8Nfu50FhJuQAGAFJCAhaIHoMhfEnBzixrwNsCGGGmyeCECGGRKWwnB0MkzGh6Hn7JLEstwCADQsJwBAAAOOhOAGAcd0gJgTBuW7HBgJBgfvEgCAEBEiOyeTDxyiyjZLEsRDyEzMz+921nJyWJZn6w8P1769e/AYCQI6tIJAkGHL16zpxhY5VeYGCdd3/93d9w4tygIO/4IHBOD8Hz/4f+IDkEHU4n8PqBMMBCQ0iXWYFnCIGqooaZHfRqOrgxuOtjmpCJCaYjmQqDz3NJUBTFWK4soYEoCumIJzIBldNhLUmAaDzhggZmSAkr9SqAIjGJFGEMCQlIPKDMuo24qZIrKDONHWGqlZbOymMy2yhCoBQywFQAgBEsETW0hCoIkqQWBINPWa3rCoEg1MiBIEiZMUiklyMfKVqoUOxIkSMtVTMzOMSBiKJQMAiWyROrf/5mq//8mkknNBQlFjiJFHKqqr//1VV6qq3vNVVbJpFHXkijM+pIoy1VX7zPOJEkmJAJaYgpqKBgASEAAIAAAAAAAAAAAA//uSxAAD1p0iZiw9OIgAADSAAAAEYAwFApgokRqIFjigukAADJhFjIUGoGFlRAycQGC5QsJJRWdRZRVWZVNYBStcjsRuaiMSgmOQOvVAKBSBY4ygsJGDCEoUEWrE3NBfUyJSSTTiPMpDUUvrhTsC7XR/G6bx2nse52G+cjBDhQW5tan7IZREJY6ULlDpCIhCIhkPDYgFaN2//3JZVZVY6UXQO2NXV1u//P/KSqyqSai7GFdu0DEqoheCVpA1v///6qqaaaYRKqIGKpiCmooGABIQAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",e.muted=!0,e.crossOrigin="anonymous",t.label=1;case 1:return t.trys.push([1,3,,4]),[4,e.play()];case 2:return t.sent(),[3,4];case 3:throw t.sent(),new g(2e3,p[2e3]);case 4:return[2]}})})).apply(this,arguments)}function m(e){return y.apply(this,arguments)}function y(){return(y=n(function(e){var i,o;return h(this,function(n){switch(n.label){case 0:if(!window.AudioContext)return[3,5];n.label=1;case 1:return n.trys.push([1,4,,5]),i=new AudioContext,[4,t.loadBinary(e)];case 2:return o=n.sent(),[4,i.decodeAudioData(o)];case 3:return[2,n.sent()];case 4:throw n.sent(),Error("Failed to load audio from "+e+".");case 5:return[2,new Promise(function(t,i){var o=new Audio;"string"==typeof e?o.src=e:o.srcObject=e,o.muted=!1,o.addEventListener("canplaythrough",function(){t(o)}),o.addEventListener("error",function(){i(Error("Failed to load audio from "+o.src+"."))}),o.load()})]}})})).apply(this,arguments)}var g=function(e){function i(o,n){var r;return(r=e.call(this,n)||this).code=o,r.name=r.constructor.name,"captureStackTrace"in Error&&t.isFunction(Error.captureStackTrace)&&Error.captureStackTrace(function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r),i),r}return s(i,e),i}(c(Error));function b(e){var t=document.createElement("video").canPlayType('video/mp4; codecs="'+e+'"');return"probably"===t||"maybe"===t}function P(e){return Object.keys(t.spec.HevcVideoCodec).some(function(i){return t.spec.HevcVideoCodec[i]===e})?e:e in t.spec.HevcVideoCodec?t.spec.HevcVideoCodec[e]:void 0}var S=function(e){function i(){return e.apply(this,arguments)}return s(i,e),i.prototype.onAssetsLoadStart=function(e,i){return void 0===i&&(i={}),n(function(){var o,n,r,s,a;return h(this,function(u){switch(u.label){case 0:return[4,A(n=void 0===(o=e.jsonScene.videos)?[]:o,t.spec.MultimediaType.video,i)];case 1:for(s=0,r=u.sent();s<n.length;s++)a=n[s],e.assets[a.id]=r[s];return[2]}})})()},i}(c(t.Plugin)),E=function(e){function i(){return e.apply(this,arguments)}return s(i,e),i.prototype.onAssetsLoadStart=function(e,i){return void 0===i&&(i={}),n(function(){var o,n,r,s,a;return h(this,function(u){switch(u.label){case 0:return[4,A(n=void 0===(o=e.jsonScene.audios)?[]:o,t.spec.MultimediaType.audio,i)];case 1:for(s=0,r=u.sent();s<n.length;s++)a=n[s],e.assets[a.id]=r[s];return[2]}})})()},i}(c(t.Plugin)),C=0;e.VideoComponent=function(e){function i(t){var i;return(i=e.call(this,t)||this).isVideoActive=!1,i.transparent=!1,i.manualPlaybackRate=!1,i.manualLoop=!1,i.manualPause=!1,i.playTriggered=!1,i.lastVideoTime=-1,i.videoDestroyed=!1,i.videoSeeking=!1,i.pendingSeekTime=null,i.isGotoAndStopSeeking=!1,i.isWaitingForGotoResult=!1,i.playPromise=null,i.eventDisposers=[],i.name="MVideo"+C++,i}s(i,e);var o=i.prototype;return o.setTexture=function(e){var i=this;return n(function(){var o,n,r;return h(this,function(s){switch(s.label){case 0:if(o=i.renderer.texture,!(n=i.item.composition))return[2];if("string"!=typeof e)return[3,2];return[4,t.Texture.fromVideo(e,i.item.engine)];case 1:return r=s.sent(),[3,3];case 2:r=e,s.label=3;case 3:return n.textures.forEach(function(e,t){e===o&&(n.textures[t]=r)}),i.engine.removeTexture(o),i.renderer.texture=r,i.material.setTexture("_MainTex",r),i.video=r.source.video,[2]}})})()},o.onAwake=function(){var t=this;e.prototype.onAwake.call(this);var i=this.item.composition;i&&this.eventDisposers.push(i.on("goto",function(){return t.handleGoto()}),i.on("play",function(){return t.handleCompositionPlay()}),i.on("pause",function(){return t.handleCompositionPause()}),i.on("end",function(){return t.handleCompositionEnd()}))},o.fromData=function(i){e.prototype.fromData.call(this,i);var o=i.interaction,n=i.options,r=n.video,s=n.startColor,a=n.playbackRate,u=n.volume,d=n.muted,c=n.transparent;if(this.transparent=void 0!==c&&c,r){var l=this.engine.findObject(r);if(l){this.video=l.data,this.video.playbackRate=void 0===a?1:a,this.setVolume(void 0===u?1:u),this.setMuted(void 0!==d&&d);var h=this.item.definition.endBehavior;h===t.spec.EndBehavior.destroy||h===t.spec.EndBehavior.freeze?this.video.loop=!1:h===t.spec.EndBehavior.restart&&(this.video.loop=!0)}}this.interaction=o,this.transparent&&this.material.enableMacro("TRANSPARENT_VIDEO",this.transparent),this.material.setColor("_Color",new t.math.Color().setFromArray(void 0===s?[1,1,1,1]:s))},o.onUpdate=function(t){if(e.prototype.onUpdate.call(this,t),!(!this.video||this.video.readyState<2||this.processPendingSeek())){if(this.detectCompositionRestart(),this.shouldFreezeVideo()){this.freezeVideo();return}this.shouldStartVideo()&&this.startVideo(),this.updatePlaybackRate(),this.ensureLoopFlag(),this.handleDestroyBehavior(),this.videoSeeking||this.renderer.texture.uploadCurrentVideoFrame()}},o.onDestroy=function(){this.eventDisposers.forEach(function(e){return e()}),this.eventDisposers=[],e.prototype.onDestroy.call(this),this.playTriggered=!1,this.playPromise=null,this.video&&(this.video.pause(),this.video.src="",this.video.load())},o.onDisable=function(){e.prototype.onDisable.call(this),this.isVideoActive=!1},o.onEnable=function(){e.prototype.onEnable.call(this),this.isVideoActive=!0},o.handleGoto=function(){this.isWaitingForGotoResult=!0,this.playTriggered=!1,this.manualPause=!1,this.pendingSeekTime=this.item.time},o.handleCompositionPause=function(){if(this.isWaitingForGotoResult){this.isWaitingForGotoResult=!1,this.video&&this.video.readyState>=2&&(this.isGotoAndStopSeeking=!0,this.performSeek(this.item.time,!1,!0));return}this.pauseVideoElement()},o.handleCompositionPlay=function(){if(this.isWaitingForGotoResult&&(this.isWaitingForGotoResult=!1),!this.checkCompositionEnded()){var e;!this.manualPause&&!this.videoSeeking&&(null==(e=this.video)?void 0:e.paused)&&this.safePlay();return}this.playTriggered=!1,this.manualPause=!1;var i=this.item.endBehavior;i===t.spec.EndBehavior.freeze&&this.video?this.pendingSeekTime=0:i===t.spec.EndBehavior.destroy&&(this.videoDestroyed=!1)},o.handleCompositionEnd=function(){var e,i=null==(e=this.item.composition)?void 0:e.rootItem.endBehavior;if(i===t.spec.EndBehavior.restart){this.videoSeeking||(this.pendingSeekTime=0),this.playTriggered=!1,this.videoDestroyed=!1;return}i!==t.spec.EndBehavior.forward&&(this.playTriggered=!1,this.pauseVideoElement())},o.checkVideoEnded=function(){return this.item.endBehavior!==t.spec.EndBehavior.restart&&this.video.currentTime+i.threshold>=this.video.duration},o.checkCompositionEnded=function(){var e=this.item.composition;return!!e&&e.time+i.threshold>=e.rootItem.duration},o.shouldFreezeVideo=function(){var e,i=this.checkVideoEnded(),o=this.checkCompositionEnded(),n=this.item.endBehavior,r=null==(e=this.item.composition)?void 0:e.rootItem.endBehavior,s=o&&r===t.spec.EndBehavior.freeze,a=r!==t.spec.EndBehavior.restart&&o;return(i||a)&&n===t.spec.EndBehavior.freeze||s},o.shouldStartVideo=function(){if(this.playTriggered||this.manualPause||this.videoDestroyed||this.checkVideoEnded())return!1;var e=this.item.composition;return!!e&&(this.video.currentTime>0||e.time>0)},o.processPendingSeek=function(){if(null===this.pendingSeekTime)return!1;var e=this.pendingSeekTime;return this.pendingSeekTime=null,this.performSeek(e),!0},o.detectCompositionRestart=function(){var e=this.item.time;if(this.lastVideoTime>0&&e<this.lastVideoTime){this.playTriggered=!1,this.videoDestroyed=!1,this.manualPause=!1,this.lastVideoTime=-1;var i,o=null==(i=this.item.composition)?void 0:i.rootItem.endBehavior,n=this.item.endBehavior;o!==t.spec.EndBehavior.restart&&n!==t.spec.EndBehavior.restart&&(this.pendingSeekTime=0)}this.lastVideoTime=e},o.freezeVideo=function(){this.playTriggered=!1,this.video.paused||this.pauseVideoElement()},o.ensureLoopFlag=function(){!this.manualLoop&&(this.item.endBehavior!==t.spec.EndBehavior.restart||this.video.loop||(this.video.loop=!0))},o.handleDestroyBehavior=function(){!this.videoDestroyed&&!this.videoSeeking&&this.checkVideoEnded()&&this.item.endBehavior===t.spec.EndBehavior.destroy&&(this.videoDestroyed=!0,this.playTriggered=!1,this.performSeek(0,!0))},o.startVideo=function(){this.video&&(!this.playTriggered||this.video.paused)&&(this.playTriggered=!0,this.safePlay())},o.safePlay=function(){var e=this;if(this.video&&!this.playPromise){var t=this.video.play();this.playPromise=t,t.then(function(){e.playPromise===t&&(e.playPromise=null),e.updatePlaybackRate()}).catch(function(i){e.playPromise===t&&(e.playPromise=null),"AbortError"===i.name&&(e.playTriggered=!1),e.engine.renderErrors.add(i)})}},o.pauseVideoElement=function(){var e=this;!this.isGotoAndStopSeeking&&this.video&&!this.video.paused&&(this.video.pause(),this.playPromise&&this.playPromise.then(function(){e.video&&!e.video.paused&&e.video.pause()}))},o.performSeek=function(e,t,i){var o=this;void 0===t&&(t=!1),void 0===i&&(i=!1);var n=!this.video.paused,r=function(){o.videoSeeking=!0,t&&o.material.setTexture("_MainTex",o.engine.transparentTexture),o.video.addEventListener("seeked",function(){o.videoSeeking=!1,o.isGotoAndStopSeeking=!1,t&&o.material.setTexture("_MainTex",o.renderer.texture),o.video&&(o.renderer.texture.uploadCurrentVideoFrame(),i?o.video.pause():n&&!o.manualPause&&o.safePlay())},{once:!0}),o.video.currentTime=e};i?n?r():this.video.play().then(function(){r()}).catch(function(){r()}):(n&&this.video.pause(),r())},o.updatePlaybackRate=function(){if(!this.manualPlaybackRate&&this.video){var e=this.item.composition;if(e){var t=this.engine.speed*e.speed;this.video.playbackRate!==t&&(this.video.playbackRate=t)}}},o.getDuration=function(){return this.video?this.video.duration:0},o.getCurrentTime=function(){return this.video?this.video.currentTime:0},o.setCurrentTime=function(e){if(this.video){var t=this.video.duration;if(!t||!isFinite(t)){this.pendingSeekTime=Math.max(0,e);return}this.pendingSeekTime=Math.max(0,Math.min(e,t))}},o.setLoop=function(e){this.manualLoop=!0,this.video&&(this.video.loop=e)},o.resetLoop=function(){this.manualLoop=!1,this.video&&(this.video.loop=this.item.endBehavior===t.spec.EndBehavior.restart)},o.setMuted=function(e){this.video&&this.video.muted!==e&&(this.video.muted=e)},o.setVolume=function(e){this.video&&this.video.volume!==e&&(this.video.volume=e)},o.setTransparent=function(e){this.transparent!==e&&(e?this.material.enableMacro("TRANSPARENT_VIDEO",!0):this.material.disableMacro("TRANSPARENT_VIDEO"),this.transparent=e)},o.setPlaybackRate=function(e){this.manualPlaybackRate=!0,this.video&&(this.video.playbackRate=e)},o.resetPlaybackRate=function(){this.manualPlaybackRate=!1},o.playVideo=function(){this.manualPause=!1,this.startVideo()},o.pauseVideo=function(){this.manualPause=!0,this.pauseVideoElement()},i}(t.MaskableGraphic),e.VideoComponent.threshold=.01,e.VideoComponent=l([t.effectsClass(t.spec.DataType.VideoComponent)],e.VideoComponent);var k=function(){function e(e,i){this.engine=e,this.audioSourceInfo={},this.pendingOffset=0,this.isSupportAudioContext=!!window.AudioContext,this.options={endBehavior:t.spec.EndBehavior.destroy,duration:0},this.destroyed=!1,this.started=!1,this.initialized=!1,this.currentVolume=1,i&&this.setAudioSource(i)}var i=e.prototype;return i.setAudioSource=function(e){if((this.audio||this.audioSourceInfo.source)&&this.dispose(),function e(t,i){return null!=i&&"undefined"!=typeof Symbol&&i[Symbol.hasInstance]?!!i[Symbol.hasInstance](t):e(t,i)}(e,AudioBuffer)){var t=new AudioContext,i=t.createGain();i.connect(t.destination);var o=t.createBufferSource();o.buffer=e,o.connect(i),this.audioSourceInfo={source:o,audioContext:t,gainNode:i}}else this.audio=e;this.started&&this.play()},i.getCurrentTime=function(){if(!this.isSupportAudioContext)return(null==(e=this.audio)?void 0:e.currentTime)||0;var e,t=this.audioSourceInfo.audioContext;return(null==t?void 0:t.currentTime)||0},i.setCurrentTime=function(e){var t=Math.max(0,e);if(this.isSupportAudioContext){var i=this.options.duration&&this.options.duration>0?this.options.duration:void 0;this.pendingOffset=i?Math.min(t,i):t;return}if(this.audio){var o=Number.isFinite(this.audio.duration)?this.audio.duration:void 0;this.audio.currentTime=o?Math.min(t,o):t}},i.play=function(){var e=this;if(this.isSupportAudioContext){var i,o,n,r,s=this.audioSourceInfo,a=s.audioContext,u=s.source,d=s.gainNode;if(!a||!d)return;var c=null==u?void 0:u.buffer;if(!c)return;var l=this.options.duration&&this.options.duration>0?this.options.duration:c.duration;try{null==u||u.stop()}catch(e){}var h=a.createBufferSource();h.buffer=c,h.connect(d),h.playbackRate.value=null!=(i=null==u?void 0:u.playbackRate.value)?i:1,this.options.endBehavior===t.spec.EndBehavior.restart?(h.loop=!0,h.loopStart=0,h.loopEnd=l):(h.loop=null!=(o=null==u?void 0:u.loop)&&o,h.loopStart=null!=(n=null==u?void 0:u.loopStart)?n:0,h.loopEnd=null!=(r=null==u?void 0:u.loopEnd)?r:l),this.audioSourceInfo.source=h,"suspended"===a.state&&a.resume().catch(function(t){return e.engine.renderErrors.add(t)});try{h.start(0,this.pendingOffset||0),this.pendingOffset=0,this.started=!0}catch(e){this.engine.renderErrors.add(e)}}else this.audio&&(this.audio.loop=this.options.endBehavior===t.spec.EndBehavior.restart,this.audio.play().catch(function(t){return e.engine.renderErrors.add(t)}),this.started=!0)},i.pause=function(){if(this.isSupportAudioContext){var e,t=this.audioSourceInfo,i=t.source,o=t.audioContext;o&&o.currentTime>0&&this.started&&(null==i||i.stop())}else null==(e=this.audio)||e.pause()},i.setVolume=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.gainNode;t&&(t.gain.value=e,this.currentVolume=e)}else this.audio&&(this.audio.volume=e,this.currentVolume=e)},i.setPlaybackRate=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.source;t&&(t.playbackRate.value=e)}else this.audio&&(this.audio.playbackRate=e)},i.setLoop=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.source;t?t.loop=e:this.engine.renderErrors.add(Error("Audio source is not found."))}else this.audio&&(this.audio.loop=e)},i.setOptions=function(e){this.initialized||(this.options=e,this.initialized=!0)},i.setMuted=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.gainNode,i=e?0:this.currentVolume;t&&(t.gain.value=i)}else this.audio&&(this.audio.muted=e)},i.dispose=function(){var e,t=this;if(!this.destroyed){if(this.isSupportAudioContext){var i=this.audioSourceInfo,o=i.audioContext,n=i.source;this.started&&(null==n||n.stop()),null==o||o.close().catch(function(e){t.engine.renderErrors.add(e)})}else null==(e=this.audio)||e.pause();this.destroyed=!0}},e}();e.AudioComponent=function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.isPlaying=!1,t}s(t,e);var i=t.prototype;return i.onAwake=function(){var t,i,o,n=this;e.prototype.onAwake.call(this),null==(t=this.item.composition)||t.on("play",function(e){n.audioPlayer.setMuted(!1),n.item.time<=0||(n.audioPlayer.setCurrentTime(n.item.time),n.audioPlayer.play(),n.isPlaying=!0)}),null==(i=this.item.composition)||i.on("pause",function(){n.audioPlayer.setMuted(!0),n.audioPlayer.pause(),n.isPlaying=!1}),null==(o=this.item.composition)||o.on("goto",function(e){n.audioPlayer.setMuted(!0),n.audioPlayer.setCurrentTime(n.item.time)})},i.onUpdate=function(t){e.prototype.onUpdate.call(this,t);var i=this.item,o=i.time,n=i.duration,r=i.endBehavior;o>0&&!1==this.isPlaying&&(this.audioPlayer.play(),this.isPlaying=!0),this.audioPlayer.setOptions({duration:n,endBehavior:r})},i.fromData=function(t){e.prototype.fromData.call(this,t);var i=t.options,o=i.playbackRate,n=i.muted,r=i.volume,s=void 0;i.audio&&(s=this.engine.findObject(i.audio).data),this.audioPlayer=new k(this.engine,s),this.audioPlayer.pause(),this.setPlaybackRate(void 0===o?1:o),this.setMuted(void 0!==n&&n),this.setVolume(void 0===r?1:r)},i.setAudioSource=function(e){this.audioPlayer.setAudioSource(e)},i.setVolume=function(e){this.audioPlayer.setVolume(e)},i.getCurrentTime=function(){return this.audioPlayer.getCurrentTime()},i.setMuted=function(e){this.audioPlayer.setMuted(e)},i.setLoop=function(e){this.audioPlayer.setLoop(e)},i.setPlaybackRate=function(e){this.audioPlayer.setPlaybackRate(e)},i.onDisable=function(){e.prototype.onDisable.call(this),this.audioPlayer.pause()},i.dispose=function(){e.prototype.dispose.call(this),this.audioPlayer.dispose()},t}(t.RendererComponent),e.AudioComponent=l([t.effectsClass(t.spec.DataType.AudioComponent)],e.AudioComponent);var T="2.9.0";t.registerPlugin("video",S),t.registerPlugin("audio",E),t.logger.info("Plugin multimedia version: "+T+"."),T!==i.version&&console.error("注意:请统一 Multimedia 插件与 Player 版本,不统一的版本混用会有不可预知的后果!","\nAttention: Please ensure the Multimedia plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!"),e.AudioPlayer=k,e.MultimediaError=g,e.canPlayHevcCodec=b,e.checkAutoplayPermission=function(){return v.apply(this,arguments)},e.loadAudio=m,e.multimediaErrorDisplayMessageMap={2e3:"音视频自动播放权限未开启"},e.multimediaErrorMessageMap=p,e.parseCodec=P,e.processMultimedia=A,e.version=T,Object.defineProperty(e,"__esModule",{value:!0})});
6
+ * Version: v2.9.1-beta.0
7
+ */function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@galacean/effects")):"function"==typeof define&&define.amd?define(["exports","@galacean/effects"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).ge=e.ge||{},e.ge.multimediaPlugin={}),e.ge)}(this,function(e,t){"use strict";var i=function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(i){if("default"!==i){var o=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,o.get?o:{enumerable:!0,get:function(){return e[i]}})}}),t.default=e,Object.freeze(t)}(t);function o(e,t,i,o,n,r,s){try{var a=e[r](s),u=a.value}catch(e){i(e);return}a.done?t(u):Promise.resolve(u).then(o,n)}function n(e){return function(){var t=this,i=arguments;return new Promise(function(n,r){var s=e.apply(t,i);function a(e){o(s,n,r,a,u,"next",e)}function u(e){o(s,n,r,a,u,"throw",e)}a(void 0)})}}function r(e,t){return(r=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function s(e,t){if("function"!=typeof t&&null!==t)throw TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}function a(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(a=function(){return!!e})()}function u(e,t,i){return(u=a()?Reflect.construct:function(e,t,i){var o=[null];o.push.apply(o,t);var n=new(Function.bind.apply(e,o));return i&&r(n,i.prototype),n}).apply(null,arguments)}function d(e){return(d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function c(e){var t="function"==typeof Map?new Map:void 0;return(c=function(e){if(null===e||-1===Function.toString.call(e).indexOf("[native code]"))return e;if("function"!=typeof e)throw TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,i)}function i(){return u(e,arguments,d(this).constructor)}return i.prototype=Object.create(e.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),r(i,e)})(e)}function l(e,t,i,o){var n,r=arguments.length,s=r<3?t:null===o?o=Object.getOwnPropertyDescriptor(t,i):o;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,i,o);else for(var a=e.length-1;a>=0;a--)(n=e[a])&&(s=(r<3?n(s):r>3?n(t,i,s):n(t,i))||s);return r>3&&s&&Object.defineProperty(t,i,s),s}function h(e,t){var i,o,n,r={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]},s=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(u){return function(a){if(i)throw TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(r=0)),r;)try{if(i=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,o=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(!(n=(n=r.trys).length>0&&n[n.length-1])&&(6===a[0]||2===a[0])){r=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){r.label=a[1];break}if(6===a[0]&&r.label<n[1]){r.label=n[1],n=a;break}if(n&&r.label<n[2]){r.label=n[2],r.ops.push(a);break}n[2]&&r.ops.pop(),r.trys.pop();continue}a=t.call(e,r)}catch(e){a=[6,e],o=0}finally{i=n=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,u])}}}"function"==typeof SuppressedError&&SuppressedError;var p={2e3:"Autoplay permission for audio and video is not enabled"};function A(e,t,i){return f.apply(this,arguments)}function f(){return(f=n(function(e,i,o){var n;return h(this,function(r){return n=o.renderLevel,[2,Promise.all(e.map(function(r){if(t.passRenderLevel(r.renderLevel,n)){if(i===t.spec.MultimediaType.video){var s=new URL(function(e,t){if(!t.useHevcVideo)return e.url;var i=e.hevc;if(!(null==i?void 0:i.url)||!(null==i?void 0:i.codec))return e.url;var o=b(i.codec);return o&&S(o)?i.url:e.url}(r,o),location.href).href;return t.loadVideo(s)}if(i===t.spec.MultimediaType.audio)return m(new URL(r.url,location.href).href)}throw Error("Invalid "+i+" source: "+JSON.stringify(e)+".")}))]})})).apply(this,arguments)}function v(){return(v=n(function(){var e;return h(this,function(t){switch(t.label){case 0:(e=document.createElement("audio")).src="data:audio/mpeg;base64,//uQxAACFCEW8uewc8Nfu50FhJuQAGAFJCAhaIHoMhfEnBzixrwNsCGGGmyeCECGGRKWwnB0MkzGh6Hn7JLEstwCADQsJwBAAAOOhOAGAcd0gJgTBuW7HBgJBgfvEgCAEBEiOyeTDxyiyjZLEsRDyEzMz+921nJyWJZn6w8P1769e/AYCQI6tIJAkGHL16zpxhY5VeYGCdd3/93d9w4tygIO/4IHBOD8Hz/4f+IDkEHU4n8PqBMMBCQ0iXWYFnCIGqooaZHfRqOrgxuOtjmpCJCaYjmQqDz3NJUBTFWK4soYEoCumIJzIBldNhLUmAaDzhggZmSAkr9SqAIjGJFGEMCQlIPKDMuo24qZIrKDONHWGqlZbOymMy2yhCoBQywFQAgBEsETW0hCoIkqQWBINPWa3rCoEg1MiBIEiZMUiklyMfKVqoUOxIkSMtVTMzOMSBiKJQMAiWyROrf/5mq//8mkknNBQlFjiJFHKqqr//1VV6qq3vNVVbJpFHXkijM+pIoy1VX7zPOJEkmJAJaYgpqKBgASEAAIAAAAAAAAAAAA//uSxAAD1p0iZiw9OIgAADSAAAAEYAwFApgokRqIFjigukAADJhFjIUGoGFlRAycQGC5QsJJRWdRZRVWZVNYBStcjsRuaiMSgmOQOvVAKBSBY4ygsJGDCEoUEWrE3NBfUyJSSTTiPMpDUUvrhTsC7XR/G6bx2nse52G+cjBDhQW5tan7IZREJY6ULlDpCIhCIhkPDYgFaN2//3JZVZVY6UXQO2NXV1u//P/KSqyqSai7GFdu0DEqoheCVpA1v///6qqaaaYRKqIGKpiCmooGABIQAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",e.muted=!0,e.crossOrigin="anonymous",t.label=1;case 1:return t.trys.push([1,3,,4]),[4,e.play()];case 2:return t.sent(),[3,4];case 3:throw t.sent(),new g(2e3,p[2e3]);case 4:return[2]}})})).apply(this,arguments)}function m(e){return y.apply(this,arguments)}function y(){return(y=n(function(e){var i,o;return h(this,function(n){switch(n.label){case 0:if(!window.AudioContext)return[3,5];n.label=1;case 1:return n.trys.push([1,4,,5]),i=new AudioContext,[4,t.loadBinary(e)];case 2:return o=n.sent(),[4,i.decodeAudioData(o)];case 3:return[2,n.sent()];case 4:throw n.sent(),Error("Failed to load audio from "+e+".");case 5:return[2,new Promise(function(t,i){var o=new Audio;"string"==typeof e?o.src=e:o.srcObject=e,o.muted=!1,o.addEventListener("canplaythrough",function(){t(o)}),o.addEventListener("error",function(){i(Error("Failed to load audio from "+o.src+"."))}),o.load()})]}})})).apply(this,arguments)}var g=function(e){function i(o,n){var r;return(r=e.call(this,n)||this).code=o,r.name=r.constructor.name,"captureStackTrace"in Error&&t.isFunction(Error.captureStackTrace)&&Error.captureStackTrace(function(e){if(void 0===e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r),i),r}return s(i,e),i}(c(Error));function S(e){var t=document.createElement("video").canPlayType('video/mp4; codecs="'+e+'"');return"probably"===t||"maybe"===t}function b(e){return Object.keys(t.spec.HevcVideoCodec).some(function(i){return t.spec.HevcVideoCodec[i]===e})?e:e in t.spec.HevcVideoCodec?t.spec.HevcVideoCodec[e]:void 0}var P=function(e){function i(){return e.apply(this,arguments)}return s(i,e),i.prototype.onAssetsLoadStart=function(e,i){return void 0===i&&(i={}),n(function(){var o,n,r,s,a;return h(this,function(u){switch(u.label){case 0:return[4,A(n=void 0===(o=e.jsonScene.videos)?[]:o,t.spec.MultimediaType.video,i)];case 1:for(s=0,r=u.sent();s<n.length;s++)a=n[s],e.assets[a.id]=r[s];return[2]}})})()},i}(c(t.Plugin)),T=function(e){function i(){return e.apply(this,arguments)}return s(i,e),i.prototype.onAssetsLoadStart=function(e,i){return void 0===i&&(i={}),n(function(){var o,n,r,s,a;return h(this,function(u){switch(u.label){case 0:return[4,A(n=void 0===(o=e.jsonScene.audios)?[]:o,t.spec.MultimediaType.audio,i)];case 1:for(s=0,r=u.sent();s<n.length;s++)a=n[s],e.assets[a.id]=r[s];return[2]}})})()},i}(c(t.Plugin)),E=0;e.VideoComponent=function(e){function i(t){var i;return(i=e.call(this,t)||this).isVideoActive=!1,i.transparent=!1,i.manualPlaybackRate=!1,i.manualLoop=!1,i.manualPause=!1,i.playTriggered=!1,i.lastVideoTime=-1,i.videoDestroyed=!1,i.videoSeeking=!1,i.pendingSeekTime=null,i.isGotoAndStopSeeking=!1,i.isWaitingForGotoResult=!1,i.playPromise=null,i.eventDisposers=[],i.name="MVideo"+E++,i}s(i,e);var o=i.prototype;return o.setTexture=function(e){var i=this;return n(function(){var o,n,r;return h(this,function(s){switch(s.label){case 0:if(o=i.renderer.texture,!(n=i.item.composition))return[2];if("string"!=typeof e)return[3,2];return[4,t.Texture.fromVideo(e,i.item.engine)];case 1:return r=s.sent(),[3,3];case 2:r=e,s.label=3;case 3:return n.textures.forEach(function(e,t){e===o&&(n.textures[t]=r)}),i.engine.removeTexture(o),i.renderer.texture=r,i.material.setTexture("_MainTex",r),i.video=r.source.video,[2]}})})()},o.onAwake=function(){var t=this;e.prototype.onAwake.call(this);var i=this.item.composition;i&&this.eventDisposers.push(i.on("goto",function(){return t.handleGoto()}),i.on("play",function(){return t.handleCompositionPlay()}),i.on("pause",function(){return t.handleCompositionPause()}),i.on("end",function(){return t.handleCompositionEnd()}))},o.fromData=function(i){e.prototype.fromData.call(this,i);var o=i.interaction,n=i.options,r=n.video,s=n.startColor,a=n.playbackRate,u=n.volume,d=n.muted,c=n.transparent;if(this.transparent=void 0!==c&&c,r){var l=this.engine.findObject(r);if(l){this.video=l.data,this.video.playbackRate=void 0===a?1:a,this.setVolume(void 0===u?1:u),this.setMuted(void 0!==d&&d);var h=this.item.definition.endBehavior;h===t.spec.EndBehavior.destroy||h===t.spec.EndBehavior.freeze?this.video.loop=!1:h===t.spec.EndBehavior.restart&&(this.video.loop=!0)}}this.interaction=o,this.transparent&&this.material.enableMacro("TRANSPARENT_VIDEO",this.transparent),this.material.setColor("_Color",new t.math.Color().setFromArray(void 0===s?[1,1,1,1]:s))},o.onUpdate=function(t){if(e.prototype.onUpdate.call(this,t),!(!this.video||this.video.readyState<2||this.processPendingSeek())){if(this.detectCompositionRestart(),this.shouldFreezeVideo()){this.freezeVideo();return}this.shouldStartVideo()&&this.startVideo(),this.updatePlaybackRate(),this.ensureLoopFlag(),this.handleDestroyBehavior(),this.videoSeeking||this.renderer.texture.uploadCurrentVideoFrame()}},o.onDestroy=function(){this.eventDisposers.forEach(function(e){return e()}),this.eventDisposers=[],e.prototype.onDestroy.call(this),this.playTriggered=!1,this.playPromise=null,this.video&&(this.video.pause(),this.video.src="",this.video.load())},o.onDisable=function(){e.prototype.onDisable.call(this),this.isVideoActive=!1,this.playTriggered=!1,this.pauseVideoElement()},o.onEnable=function(){e.prototype.onEnable.call(this),this.isVideoActive=!0,this.playTriggered=!1,this.syncVideoToItemTime()},o.handleGoto=function(){this.isWaitingForGotoResult=!0,this.playTriggered=!1,this.manualPause=!1,this.pendingSeekTime=this.getItemSeekTime()},o.handleCompositionPause=function(){if(this.isWaitingForGotoResult){this.isWaitingForGotoResult=!1,this.video&&this.video.readyState>=2&&(this.isGotoAndStopSeeking=!0,this.performSeek(this.getItemSeekTime(),!1,!0));return}this.pauseVideoElement()},o.handleCompositionPlay=function(){if(this.isWaitingForGotoResult&&(this.isWaitingForGotoResult=!1),!this.checkCompositionEnded()){var e;this.canPlayCurrentItem()&&(null==(e=this.video)?void 0:e.paused)&&this.safePlay();return}this.playTriggered=!1,this.manualPause=!1;var i=this.item.endBehavior;i===t.spec.EndBehavior.freeze&&this.video?this.pendingSeekTime=0:i===t.spec.EndBehavior.destroy&&(this.videoDestroyed=!1)},o.handleCompositionEnd=function(){var e,i=null==(e=this.item.composition)?void 0:e.rootItem.endBehavior;if(i===t.spec.EndBehavior.restart){this.videoSeeking||(this.pendingSeekTime=0),this.playTriggered=!1,this.videoDestroyed=!1;return}i!==t.spec.EndBehavior.forward&&(this.playTriggered=!1,this.pauseVideoElement())},o.checkVideoEnded=function(){return this.item.endBehavior!==t.spec.EndBehavior.restart&&this.video.currentTime+i.threshold>=this.video.duration},o.checkCompositionEnded=function(){var e=this.item.composition;return!!e&&e.time+i.threshold>=e.rootItem.duration},o.shouldFreezeVideo=function(){var e,i=this.checkVideoEnded(),o=this.checkCompositionEnded(),n=this.item.endBehavior,r=null==(e=this.item.composition)?void 0:e.rootItem.endBehavior,s=o&&r===t.spec.EndBehavior.freeze,a=r!==t.spec.EndBehavior.restart&&o;return(i||a)&&n===t.spec.EndBehavior.freeze||s},o.shouldStartVideo=function(){return!this.playTriggered&&!!this.canPlayCurrentItem()},o.processPendingSeek=function(){if(null===this.pendingSeekTime)return!1;var e=this.pendingSeekTime;return this.pendingSeekTime=null,this.performSeek(e),!0},o.detectCompositionRestart=function(){var e=this.item.time;if(this.lastVideoTime>0&&e<this.lastVideoTime){this.playTriggered=!1,this.videoDestroyed=!1,this.manualPause=!1,this.lastVideoTime=-1;var i,o=null==(i=this.item.composition)?void 0:i.rootItem.endBehavior,n=this.item.endBehavior;o!==t.spec.EndBehavior.restart&&n!==t.spec.EndBehavior.restart&&(this.pendingSeekTime=0)}this.lastVideoTime=e},o.freezeVideo=function(){this.playTriggered=!1,this.video.paused||this.pauseVideoElement()},o.ensureLoopFlag=function(){!this.manualLoop&&(this.item.endBehavior!==t.spec.EndBehavior.restart||this.video.loop||(this.video.loop=!0))},o.handleDestroyBehavior=function(){!this.videoDestroyed&&!this.videoSeeking&&this.checkVideoEnded()&&this.item.endBehavior===t.spec.EndBehavior.destroy&&(this.videoDestroyed=!0,this.playTriggered=!1,this.performSeek(0,!0))},o.startVideo=function(){this.video&&(!this.playTriggered||this.video.paused)&&(this.playTriggered=!0,this.safePlay())},o.safePlay=function(){var e=this;if(this.video&&!this.playPromise){var t=this.video.play();this.playPromise=t,t.then(function(){e.playPromise===t&&(e.playPromise=null),e.updatePlaybackRate()}).catch(function(i){e.playPromise===t&&(e.playPromise=null),"AbortError"===i.name&&(e.playTriggered=!1),e.engine.renderErrors.add(i)})}},o.pauseVideoElement=function(){var e=this;!this.isGotoAndStopSeeking&&this.video&&!this.video.paused&&(this.video.pause(),this.playPromise&&this.playPromise.then(function(){e.video&&!e.video.paused&&e.video.pause()}))},o.performSeek=function(e,t,o){var n=this;void 0===t&&(t=!1),void 0===o&&(o=!1),e=this.getClampedSeekTime(e);var r=!this.video.paused,s=function(){return!t&&Math.abs(n.video.currentTime-e)<=i.threshold},a=function(){n.videoSeeking=!1,n.isGotoAndStopSeeking=!1,o?n.video.pause():r&&!n.manualPause&&n.safePlay()},u=function(){if(s()){a();return}n.videoSeeking=!0,t&&n.material.setTexture("_MainTex",n.engine.transparentTexture),n.video.addEventListener("seeked",function(){n.videoSeeking=!1,n.isGotoAndStopSeeking=!1,t&&n.material.setTexture("_MainTex",n.renderer.texture),n.video&&(n.renderer.texture.uploadCurrentVideoFrame(),o?n.video.pause():r&&!n.manualPause&&n.safePlay())},{once:!0}),n.video.currentTime=e};o?r?u():s()?a():this.video.play().then(function(){u()}).catch(function(){u()}):(r&&this.video.pause(),u())},o.updatePlaybackRate=function(){if(!this.manualPlaybackRate&&this.video){var e=this.item.composition;if(e){var t=this.engine.speed*e.speed;this.video.playbackRate!==t&&(this.video.playbackRate=t)}}},o.getItemSeekTime=function(){return Math.max(0,this.getItemLocalTime())},o.getItemLocalTime=function(){if(this.item.time>=0)return this.item.time;var e,t=this.item.composition;return t?t.time-(null!=(e=this.item.definition.delay)?e:0):this.item.time},o.getClampedSeekTime=function(e){var t,i=Math.max(0,e),o=null==(t=this.video)?void 0:t.duration;return o&&isFinite(o)?Math.min(i,o):i},o.syncVideoToItemTime=function(){if(this.video){var e=this.getItemSeekTime(),t=this.getClampedSeekTime(e);Math.abs(this.video.currentTime-t)>i.threshold&&(this.pendingSeekTime=t)}},o.canPlayCurrentItem=function(){return!(!this.video||!this.isVideoActive||0>this.getItemLocalTime())&&!this.manualPause&&!this.videoDestroyed&&!this.videoSeeking&&null===this.pendingSeekTime&&!this.checkVideoEnded()},o.getDuration=function(){return this.video?this.video.duration:0},o.getCurrentTime=function(){return this.video?this.video.currentTime:0},o.setCurrentTime=function(e){if(this.video){var t=this.video.duration;if(!t||!isFinite(t)){this.pendingSeekTime=Math.max(0,e);return}this.pendingSeekTime=Math.max(0,Math.min(e,t))}},o.setLoop=function(e){this.manualLoop=!0,this.video&&(this.video.loop=e)},o.resetLoop=function(){this.manualLoop=!1,this.video&&(this.video.loop=this.item.endBehavior===t.spec.EndBehavior.restart)},o.setMuted=function(e){this.video&&this.video.muted!==e&&(this.video.muted=e)},o.setVolume=function(e){this.video&&this.video.volume!==e&&(this.video.volume=e)},o.setTransparent=function(e){this.transparent!==e&&(e?this.material.enableMacro("TRANSPARENT_VIDEO",!0):this.material.disableMacro("TRANSPARENT_VIDEO"),this.transparent=e)},o.setPlaybackRate=function(e){this.manualPlaybackRate=!0,this.video&&(this.video.playbackRate=e)},o.resetPlaybackRate=function(){this.manualPlaybackRate=!1},o.playVideo=function(){this.manualPause=!1,this.startVideo()},o.pauseVideo=function(){this.manualPause=!0,this.pauseVideoElement()},i}(t.MaskableGraphic),e.VideoComponent.threshold=.01,e.VideoComponent=l([t.effectsClass(t.spec.DataType.VideoComponent)],e.VideoComponent);var k=function(){function e(e,i){this.engine=e,this.audioSourceInfo={},this.pendingOffset=0,this.isSupportAudioContext=!!window.AudioContext,this.options={endBehavior:t.spec.EndBehavior.destroy,duration:0},this.destroyed=!1,this.started=!1,this.initialized=!1,this.currentVolume=1,i&&this.setAudioSource(i)}var i=e.prototype;return i.setAudioSource=function(e){if((this.audio||this.audioSourceInfo.source)&&this.dispose(),function e(t,i){return null!=i&&"undefined"!=typeof Symbol&&i[Symbol.hasInstance]?!!i[Symbol.hasInstance](t):e(t,i)}(e,AudioBuffer)){var t=new AudioContext,i=t.createGain();i.connect(t.destination);var o=t.createBufferSource();o.buffer=e,o.connect(i),this.audioSourceInfo={source:o,audioContext:t,gainNode:i}}else this.audio=e;this.started&&this.play()},i.getCurrentTime=function(){if(!this.isSupportAudioContext)return(null==(e=this.audio)?void 0:e.currentTime)||0;var e,t=this.audioSourceInfo.audioContext;return(null==t?void 0:t.currentTime)||0},i.setCurrentTime=function(e){var t=Math.max(0,e);if(this.isSupportAudioContext){var i=this.options.duration&&this.options.duration>0?this.options.duration:void 0;this.pendingOffset=i?Math.min(t,i):t;return}if(this.audio){var o=Number.isFinite(this.audio.duration)?this.audio.duration:void 0;this.audio.currentTime=o?Math.min(t,o):t}},i.play=function(){var e=this;if(this.isSupportAudioContext){var i,o,n,r,s=this.audioSourceInfo,a=s.audioContext,u=s.source,d=s.gainNode;if(!a||!d)return;var c=null==u?void 0:u.buffer;if(!c)return;var l=this.options.duration&&this.options.duration>0?this.options.duration:c.duration;try{null==u||u.stop()}catch(e){}var h=a.createBufferSource();h.buffer=c,h.connect(d),h.playbackRate.value=null!=(i=null==u?void 0:u.playbackRate.value)?i:1,this.options.endBehavior===t.spec.EndBehavior.restart?(h.loop=!0,h.loopStart=0,h.loopEnd=l):(h.loop=null!=(o=null==u?void 0:u.loop)&&o,h.loopStart=null!=(n=null==u?void 0:u.loopStart)?n:0,h.loopEnd=null!=(r=null==u?void 0:u.loopEnd)?r:l),this.audioSourceInfo.source=h,"suspended"===a.state&&a.resume().catch(function(t){return e.engine.renderErrors.add(t)});try{h.start(0,this.pendingOffset||0),this.pendingOffset=0,this.started=!0}catch(e){this.engine.renderErrors.add(e)}}else this.audio&&(this.audio.loop=this.options.endBehavior===t.spec.EndBehavior.restart,this.audio.play().catch(function(t){return e.engine.renderErrors.add(t)}),this.started=!0)},i.pause=function(){if(this.isSupportAudioContext){var e,t=this.audioSourceInfo,i=t.source,o=t.audioContext;o&&o.currentTime>0&&this.started&&(null==i||i.stop())}else null==(e=this.audio)||e.pause()},i.setVolume=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.gainNode;t&&(t.gain.value=e,this.currentVolume=e)}else this.audio&&(this.audio.volume=e,this.currentVolume=e)},i.setPlaybackRate=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.source;t&&(t.playbackRate.value=e)}else this.audio&&(this.audio.playbackRate=e)},i.setLoop=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.source;t?t.loop=e:this.engine.renderErrors.add(Error("Audio source is not found."))}else this.audio&&(this.audio.loop=e)},i.setOptions=function(e){this.initialized||(this.options=e,this.initialized=!0)},i.setMuted=function(e){if(this.isSupportAudioContext){var t=this.audioSourceInfo.gainNode,i=e?0:this.currentVolume;t&&(t.gain.value=i)}else this.audio&&(this.audio.muted=e)},i.dispose=function(){var e,t=this;if(!this.destroyed){if(this.isSupportAudioContext){var i=this.audioSourceInfo,o=i.audioContext,n=i.source;this.started&&(null==n||n.stop()),null==o||o.close().catch(function(e){t.engine.renderErrors.add(e)})}else null==(e=this.audio)||e.pause();this.destroyed=!0}},e}();e.AudioComponent=function(e){function t(){var t;return t=e.apply(this,arguments)||this,t.isPlaying=!1,t}s(t,e);var i=t.prototype;return i.onAwake=function(){var t,i,o,n=this;e.prototype.onAwake.call(this),null==(t=this.item.composition)||t.on("play",function(e){n.audioPlayer.setMuted(!1),n.item.time<=0||(n.audioPlayer.setCurrentTime(n.item.time),n.audioPlayer.play(),n.isPlaying=!0)}),null==(i=this.item.composition)||i.on("pause",function(){n.audioPlayer.setMuted(!0),n.audioPlayer.pause(),n.isPlaying=!1}),null==(o=this.item.composition)||o.on("goto",function(e){n.audioPlayer.setMuted(!0),n.audioPlayer.setCurrentTime(n.item.time)})},i.onUpdate=function(t){e.prototype.onUpdate.call(this,t);var i=this.item,o=i.time,n=i.duration,r=i.endBehavior;o>0&&!1==this.isPlaying&&(this.audioPlayer.play(),this.isPlaying=!0),this.audioPlayer.setOptions({duration:n,endBehavior:r})},i.fromData=function(t){e.prototype.fromData.call(this,t);var i=t.options,o=i.playbackRate,n=i.muted,r=i.volume,s=void 0;i.audio&&(s=this.engine.findObject(i.audio).data),this.audioPlayer=new k(this.engine,s),this.audioPlayer.pause(),this.setPlaybackRate(void 0===o?1:o),this.setMuted(void 0!==n&&n),this.setVolume(void 0===r?1:r)},i.setAudioSource=function(e){this.audioPlayer.setAudioSource(e)},i.setVolume=function(e){this.audioPlayer.setVolume(e)},i.getCurrentTime=function(){return this.audioPlayer.getCurrentTime()},i.setMuted=function(e){this.audioPlayer.setMuted(e)},i.setLoop=function(e){this.audioPlayer.setLoop(e)},i.setPlaybackRate=function(e){this.audioPlayer.setPlaybackRate(e)},i.onDisable=function(){e.prototype.onDisable.call(this),this.audioPlayer.pause()},i.dispose=function(){e.prototype.dispose.call(this),this.audioPlayer.dispose()},t}(t.RendererComponent),e.AudioComponent=l([t.effectsClass(t.spec.DataType.AudioComponent)],e.AudioComponent);var C="2.9.1-beta.0";t.registerPlugin("video",P),t.registerPlugin("audio",T),t.logger.info("Plugin multimedia version: "+C+"."),C!==i.version&&console.error("注意:请统一 Multimedia 插件与 Player 版本,不统一的版本混用会有不可预知的后果!","\nAttention: Please ensure the Multimedia plugin is synchronized with the Player version. Mixing and matching incompatible versions may result in unpredictable consequences!"),e.AudioPlayer=k,e.MultimediaError=g,e.canPlayHevcCodec=S,e.checkAutoplayPermission=function(){return v.apply(this,arguments)},e.loadAudio=m,e.multimediaErrorDisplayMessageMap={2e3:"音视频自动播放权限未开启"},e.multimediaErrorMessageMap=p,e.parseCodec=b,e.processMultimedia=A,e.version=C,Object.defineProperty(e,"__esModule",{value:!0})});
8
8
  //# sourceMappingURL=index.min.js.map