@galacean/effects-plugin-multimedia 2.1.0-alpha.9 → 2.1.0-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.
@@ -1,6 +1,10 @@
1
- import type { SceneLoadOptions } from '@galacean/effects';
1
+ import type { PrecompileOptions, Renderer, SceneLoadOptions } from '@galacean/effects';
2
2
  import { spec, AbstractPlugin } from '@galacean/effects';
3
+ /**
4
+ * 音频加载插件
5
+ */
3
6
  export declare class AudioLoader extends AbstractPlugin {
7
+ static precompile(compositions: spec.Composition[], renderer: Renderer, options?: PrecompileOptions): Promise<any>;
4
8
  static processAssets(json: spec.JSONScene, options?: SceneLoadOptions): Promise<{
5
9
  assets: spec.AssetBase[];
6
10
  loadedAssets: (HTMLAudioElement | AudioBuffer)[];
package/dist/index.d.ts CHANGED
@@ -3,3 +3,7 @@ export * from './audio/audio-component';
3
3
  export * from './audio/audio-player';
4
4
  export * from './constants';
5
5
  export * from './utils';
6
+ /**
7
+ * 插件版本号
8
+ */
9
+ export declare const version: string;
package/dist/index.js CHANGED
@@ -3,14 +3,34 @@
3
3
  * Description: Galacean Effects player multimedia plugin
4
4
  * Author: Ant Group CO., Ltd.
5
5
  * Contributors: 云垣
6
- * Version: v2.1.0-alpha.9
6
+ * Version: v2.1.0-beta.0
7
7
  */
8
8
 
9
9
  'use strict';
10
10
 
11
11
  Object.defineProperty(exports, '__esModule', { value: true });
12
12
 
13
- var effects = require('@galacean/effects');
13
+ var EFFECTS = require('@galacean/effects');
14
+
15
+ function _interopNamespace(e) {
16
+ if (e && e.__esModule) return e;
17
+ var n = Object.create(null);
18
+ if (e) {
19
+ Object.keys(e).forEach(function (k) {
20
+ if (k !== 'default') {
21
+ var d = Object.getOwnPropertyDescriptor(e, k);
22
+ Object.defineProperty(n, k, d.get ? d : {
23
+ enumerable: true,
24
+ get: function () { return e[k]; }
25
+ });
26
+ }
27
+ });
28
+ }
29
+ n["default"] = e;
30
+ return Object.freeze(n);
31
+ }
32
+
33
+ var EFFECTS__namespace = /*#__PURE__*/_interopNamespace(EFFECTS);
14
34
 
15
35
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
16
36
  try {
@@ -259,11 +279,11 @@ function _processMultimedia() {
259
279
  return __generator(this, function(_state) {
260
280
  renderLevel = options.renderLevel;
261
281
  jobs = media.map(function(medium) {
262
- if (effects.passRenderLevel(medium.renderLevel, renderLevel)) {
282
+ if (EFFECTS.passRenderLevel(medium.renderLevel, renderLevel)) {
263
283
  var url = new URL(medium.url, location.href).href;
264
- if (type === effects.spec.MultimediaType.video) {
265
- return effects.loadVideo(url);
266
- } else if (type === effects.spec.MultimediaType.audio) {
284
+ if (type === EFFECTS.spec.MultimediaType.video) {
285
+ return EFFECTS.loadVideo(url);
286
+ } else if (type === EFFECTS.spec.MultimediaType.audio) {
267
287
  return loadAudio(url);
268
288
  }
269
289
  }
@@ -351,7 +371,7 @@ function _loadAudio() {
351
371
  audioContext = new AudioContext();
352
372
  return [
353
373
  4,
354
- effects.loadBinary(url)
374
+ EFFECTS.loadBinary(url)
355
375
  ];
356
376
  case 2:
357
377
  buffer = _state.sent();
@@ -404,7 +424,7 @@ var MultimediaError = /*#__PURE__*/ function(Error1) {
404
424
  _this = Error1.call(this, message) || this;
405
425
  _this.code = code;
406
426
  _this.name = _this.constructor.name;
407
- if ("captureStackTrace" in Error && effects.isFunction(Error.captureStackTrace)) {
427
+ if ("captureStackTrace" in Error && EFFECTS.isFunction(Error.captureStackTrace)) {
408
428
  Error.captureStackTrace(_assert_this_initialized(_this), MultimediaError);
409
429
  }
410
430
  return _this;
@@ -412,11 +432,25 @@ var MultimediaError = /*#__PURE__*/ function(Error1) {
412
432
  return MultimediaError;
413
433
  }(_wrap_native_super(Error));
414
434
 
415
- var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
435
+ /**
436
+ * 视频加载插件
437
+ */ var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
416
438
  _inherits(VideoLoader, AbstractPlugin);
417
439
  function VideoLoader() {
418
440
  return AbstractPlugin.apply(this, arguments);
419
441
  }
442
+ VideoLoader.precompile = function precompile(compositions, renderer, options) {
443
+ var engine = renderer.engine;
444
+ var env = (options != null ? options : {
445
+ env: ""
446
+ }).env;
447
+ if (env === EFFECTS.PLAYER_OPTIONS_ENV_EDITOR) {
448
+ return checkAutoplayPermission().catch(function(error) {
449
+ engine.renderErrors.add(error);
450
+ });
451
+ }
452
+ return Promise.resolve();
453
+ };
420
454
  VideoLoader.processAssets = function processAssets(json, options) {
421
455
  if (options === void 0) options = {};
422
456
  return _async_to_generator(function() {
@@ -427,7 +461,7 @@ var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
427
461
  _json_videos = json.videos, videos = _json_videos === void 0 ? [] : _json_videos;
428
462
  return [
429
463
  4,
430
- processMultimedia(videos, effects.spec.MultimediaType.video, options)
464
+ processMultimedia(videos, EFFECTS.spec.MultimediaType.video, options)
431
465
  ];
432
466
  case 1:
433
467
  loadedAssets = _state.sent();
@@ -443,13 +477,27 @@ var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
443
477
  })();
444
478
  };
445
479
  return VideoLoader;
446
- }(effects.AbstractPlugin);
480
+ }(EFFECTS.AbstractPlugin);
447
481
 
448
- var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
482
+ /**
483
+ * 音频加载插件
484
+ */ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
449
485
  _inherits(AudioLoader, AbstractPlugin);
450
486
  function AudioLoader() {
451
487
  return AbstractPlugin.apply(this, arguments);
452
488
  }
489
+ AudioLoader.precompile = function precompile(compositions, renderer, options) {
490
+ var engine = renderer.engine;
491
+ var env = (options != null ? options : {
492
+ env: ""
493
+ }).env;
494
+ if (env === EFFECTS.PLAYER_OPTIONS_ENV_EDITOR) {
495
+ return checkAutoplayPermission().catch(function(error) {
496
+ engine.renderErrors.add(error);
497
+ });
498
+ }
499
+ return Promise.resolve();
500
+ };
453
501
  AudioLoader.processAssets = function processAssets(json, options) {
454
502
  if (options === void 0) options = {};
455
503
  return _async_to_generator(function() {
@@ -460,7 +508,7 @@ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
460
508
  _json_audios = json.audios, audios = _json_audios === void 0 ? [] : _json_audios;
461
509
  return [
462
510
  4,
463
- processMultimedia(audios, effects.spec.MultimediaType.audio, options)
511
+ processMultimedia(audios, EFFECTS.spec.MultimediaType.audio, options)
464
512
  ];
465
513
  case 1:
466
514
  loadedAssets = _state.sent();
@@ -476,7 +524,7 @@ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
476
524
  })();
477
525
  };
478
526
  return AudioLoader;
479
- }(effects.AbstractPlugin);
527
+ }(EFFECTS.AbstractPlugin);
480
528
 
481
529
  var seed = 0;
482
530
  exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
@@ -486,7 +534,7 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
486
534
  _this = BaseRenderComponent.call(this, engine) || this;
487
535
  _this.threshold = 0.03;
488
536
  _this.name = "MVideo" + seed++;
489
- _this.geometry = _this.createGeometry(effects.glContext.TRIANGLES);
537
+ _this.geometry = _this.createGeometry(EFFECTS.glContext.TRIANGLES);
490
538
  return _this;
491
539
  }
492
540
  var _proto = VideoComponent.prototype;
@@ -503,7 +551,7 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
503
551
  });
504
552
  this.engine.removeTexture(oldTexture);
505
553
  this.renderer.texture = texture;
506
- this.material.setTexture("uSampler0", texture);
554
+ this.material.setTexture("_MainTex", texture);
507
555
  this.video = texture.source.video;
508
556
  };
509
557
  _proto.fromData = function fromData(data) {
@@ -526,26 +574,27 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
526
574
  this.setMuted(muted);
527
575
  var endBehavior = this.item.endBehavior;
528
576
  // 如果元素设置为 destroy
529
- if (endBehavior === effects.spec.EndBehavior.destroy) {
577
+ if (endBehavior === EFFECTS.spec.EndBehavior.destroy) {
530
578
  this.setLoop(false);
531
579
  }
532
580
  }
533
581
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
534
582
  this.renderer = {
535
- renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : effects.spec.RenderMode.BILLBOARD,
536
- blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : effects.spec.BlendingMode.ALPHA,
583
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : EFFECTS.spec.RenderMode.BILLBOARD,
584
+ blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : EFFECTS.spec.BlendingMode.ALPHA,
537
585
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
538
586
  occlusion: !!renderer.occlusion,
539
- transparentOcclusion: !!renderer.transparentOcclusion || renderer.maskMode === effects.spec.MaskMode.MASK,
540
- side: (_renderer_side = renderer.side) != null ? _renderer_side : effects.spec.SideMode.DOUBLE,
587
+ transparentOcclusion: !!renderer.transparentOcclusion || renderer.maskMode === EFFECTS.spec.MaskMode.MASK,
588
+ side: (_renderer_side = renderer.side) != null ? _renderer_side : EFFECTS.spec.SideMode.DOUBLE,
541
589
  mask: (_renderer_mask = renderer.mask) != null ? _renderer_mask : 0,
542
- maskMode: (_renderer_maskMode = renderer.maskMode) != null ? _renderer_maskMode : effects.spec.MaskMode.NONE,
543
- order: listIndex
590
+ maskMode: (_renderer_maskMode = renderer.maskMode) != null ? _renderer_maskMode : EFFECTS.spec.MaskMode.NONE,
591
+ order: listIndex,
592
+ shape: renderer.shape
544
593
  };
545
594
  this.interaction = interaction;
546
595
  this.pauseVideo();
547
596
  this.setItem();
548
- this.material.setVector4("_Color", new effects.math.Vector4().setFromArray(startColor));
597
+ this.material.setVector4("_Color", new EFFECTS.math.Vector4().setFromArray(startColor));
549
598
  };
550
599
  _proto.onUpdate = function onUpdate(dt) {
551
600
  var _this_item_composition;
@@ -555,14 +604,14 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
555
604
  this.setVisible(true);
556
605
  this.playVideo();
557
606
  }
558
- if (time === 0 && ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem.endBehavior) === effects.spec.EndBehavior.freeze) {
607
+ if (time === 0 && ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem.endBehavior) === EFFECTS.spec.EndBehavior.freeze) {
559
608
  this.pauseVideo();
560
609
  this.setCurrentTime(0);
561
610
  }
562
611
  if (Math.abs(time - duration) < this.threshold) {
563
- if (endBehavior === effects.spec.EndBehavior.freeze) {
612
+ if (endBehavior === EFFECTS.spec.EndBehavior.freeze) {
564
613
  this.pauseVideo();
565
- } else if (endBehavior === effects.spec.EndBehavior.restart) {
614
+ } else if (endBehavior === EFFECTS.spec.EndBehavior.restart) {
566
615
  this.setVisible(false);
567
616
  // 重播
568
617
  this.pauseVideo();
@@ -653,9 +702,9 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
653
702
  this.playVideo();
654
703
  };
655
704
  return VideoComponent;
656
- }(effects.BaseRenderComponent);
705
+ }(EFFECTS.BaseRenderComponent);
657
706
  exports.VideoComponent = __decorate([
658
- effects.effectsClass(effects.spec.DataType.VideoComponent)
707
+ EFFECTS.effectsClass(EFFECTS.spec.DataType.VideoComponent)
659
708
  ], exports.VideoComponent);
660
709
 
661
710
  var AudioPlayer = /*#__PURE__*/ function() {
@@ -664,7 +713,7 @@ var AudioPlayer = /*#__PURE__*/ function() {
664
713
  this.audioSourceInfo = {};
665
714
  this.isSupportAudioContext = !!window["AudioContext"];
666
715
  this.options = {
667
- endBehavior: effects.spec.EndBehavior.destroy,
716
+ endBehavior: EFFECTS.spec.EndBehavior.destroy,
668
717
  duration: 0
669
718
  };
670
719
  this.destroyed = false;
@@ -715,11 +764,11 @@ var AudioPlayer = /*#__PURE__*/ function() {
715
764
  var _this_audioSourceInfo = this.audioSourceInfo, audioContext = _this_audioSourceInfo.audioContext, source = _this_audioSourceInfo.source;
716
765
  if (source && audioContext) {
717
766
  switch(this.options.endBehavior){
718
- case effects.spec.EndBehavior.destroy:
719
- case effects.spec.EndBehavior.freeze:
767
+ case EFFECTS.spec.EndBehavior.destroy:
768
+ case EFFECTS.spec.EndBehavior.freeze:
720
769
  source.start(0);
721
770
  break;
722
- case effects.spec.EndBehavior.restart:
771
+ case EFFECTS.spec.EndBehavior.restart:
723
772
  source.loop = true;
724
773
  source.loopStart = 0;
725
774
  source.loopEnd = this.options.duration;
@@ -853,7 +902,7 @@ exports.AudioComponent = /*#__PURE__*/ function(RendererComponent) {
853
902
  this.isVideoPlay = true;
854
903
  }
855
904
  if (Math.abs(time - duration) < this.threshold) {
856
- if (endBehavior === effects.spec.EndBehavior.destroy) {
905
+ if (endBehavior === EFFECTS.spec.EndBehavior.destroy) {
857
906
  this.audioPlayer.pause();
858
907
  }
859
908
  }
@@ -912,13 +961,20 @@ exports.AudioComponent = /*#__PURE__*/ function(RendererComponent) {
912
961
  this.audioPlayer.dispose();
913
962
  };
914
963
  return AudioComponent;
915
- }(effects.RendererComponent);
964
+ }(EFFECTS.RendererComponent);
916
965
  exports.AudioComponent = __decorate([
917
- effects.effectsClass(effects.spec.DataType.AudioComponent)
966
+ EFFECTS.effectsClass(EFFECTS.spec.DataType.AudioComponent)
918
967
  ], exports.AudioComponent);
919
968
 
920
- effects.registerPlugin("video", VideoLoader, effects.VFXItem, true);
921
- effects.registerPlugin("audio", AudioLoader, effects.VFXItem, true);
969
+ /**
970
+ * 插件版本号
971
+ */ var version = "2.1.0-beta.0";
972
+ EFFECTS.registerPlugin("video", VideoLoader, EFFECTS.VFXItem, true);
973
+ EFFECTS.registerPlugin("audio", AudioLoader, EFFECTS.VFXItem, true);
974
+ EFFECTS.logger.info("Plugin multimedia version: " + version + ".");
975
+ if (version !== EFFECTS__namespace.version) {
976
+ 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!");
977
+ }
922
978
 
923
979
  exports.AudioPlayer = AudioPlayer;
924
980
  exports.MultimediaError = MultimediaError;
@@ -927,4 +983,5 @@ exports.loadAudio = loadAudio;
927
983
  exports.multimediaErrorDisplayMessageMap = multimediaErrorDisplayMessageMap;
928
984
  exports.multimediaErrorMessageMap = multimediaErrorMessageMap;
929
985
  exports.processMultimedia = processMultimedia;
986
+ exports.version = version;
930
987
  //# sourceMappingURL=index.js.map