@galacean/effects-plugin-multimedia 2.1.0-alpha.9 → 2.1.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,5 +1,8 @@
1
1
  import type { SceneLoadOptions } from '@galacean/effects';
2
2
  import { spec, AbstractPlugin } from '@galacean/effects';
3
+ /**
4
+ * 音频加载插件
5
+ */
3
6
  export declare class AudioLoader extends AbstractPlugin {
4
7
  static processAssets(json: spec.JSONScene, options?: SceneLoadOptions): Promise<{
5
8
  assets: spec.AssetBase[];
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
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,7 +432,9 @@ 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);
@@ -427,7 +449,7 @@ var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
427
449
  _json_videos = json.videos, videos = _json_videos === void 0 ? [] : _json_videos;
428
450
  return [
429
451
  4,
430
- processMultimedia(videos, effects.spec.MultimediaType.video, options)
452
+ processMultimedia(videos, EFFECTS.spec.MultimediaType.video, options)
431
453
  ];
432
454
  case 1:
433
455
  loadedAssets = _state.sent();
@@ -443,9 +465,11 @@ var VideoLoader = /*#__PURE__*/ function(AbstractPlugin) {
443
465
  })();
444
466
  };
445
467
  return VideoLoader;
446
- }(effects.AbstractPlugin);
468
+ }(EFFECTS.AbstractPlugin);
447
469
 
448
- var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
470
+ /**
471
+ * 音频加载插件
472
+ */ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
449
473
  _inherits(AudioLoader, AbstractPlugin);
450
474
  function AudioLoader() {
451
475
  return AbstractPlugin.apply(this, arguments);
@@ -460,7 +484,7 @@ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
460
484
  _json_audios = json.audios, audios = _json_audios === void 0 ? [] : _json_audios;
461
485
  return [
462
486
  4,
463
- processMultimedia(audios, effects.spec.MultimediaType.audio, options)
487
+ processMultimedia(audios, EFFECTS.spec.MultimediaType.audio, options)
464
488
  ];
465
489
  case 1:
466
490
  loadedAssets = _state.sent();
@@ -476,7 +500,7 @@ var AudioLoader = /*#__PURE__*/ function(AbstractPlugin) {
476
500
  })();
477
501
  };
478
502
  return AudioLoader;
479
- }(effects.AbstractPlugin);
503
+ }(EFFECTS.AbstractPlugin);
480
504
 
481
505
  var seed = 0;
482
506
  exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
@@ -486,7 +510,7 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
486
510
  _this = BaseRenderComponent.call(this, engine) || this;
487
511
  _this.threshold = 0.03;
488
512
  _this.name = "MVideo" + seed++;
489
- _this.geometry = _this.createGeometry(effects.glContext.TRIANGLES);
513
+ _this.geometry = _this.createGeometry(EFFECTS.glContext.TRIANGLES);
490
514
  return _this;
491
515
  }
492
516
  var _proto = VideoComponent.prototype;
@@ -503,7 +527,7 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
503
527
  });
504
528
  this.engine.removeTexture(oldTexture);
505
529
  this.renderer.texture = texture;
506
- this.material.setTexture("uSampler0", texture);
530
+ this.material.setTexture("_MainTex", texture);
507
531
  this.video = texture.source.video;
508
532
  };
509
533
  _proto.fromData = function fromData(data) {
@@ -526,26 +550,49 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
526
550
  this.setMuted(muted);
527
551
  var endBehavior = this.item.endBehavior;
528
552
  // 如果元素设置为 destroy
529
- if (endBehavior === effects.spec.EndBehavior.destroy) {
553
+ if (endBehavior === EFFECTS.spec.EndBehavior.destroy) {
530
554
  this.setLoop(false);
531
555
  }
532
556
  }
533
557
  var _renderer_renderMode, _renderer_blending, _renderer_texture, _renderer_side, _renderer_mask, _renderer_maskMode;
534
558
  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,
559
+ renderMode: (_renderer_renderMode = renderer.renderMode) != null ? _renderer_renderMode : EFFECTS.spec.RenderMode.BILLBOARD,
560
+ blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending : EFFECTS.spec.BlendingMode.ALPHA,
537
561
  texture: (_renderer_texture = renderer.texture) != null ? _renderer_texture : this.engine.emptyTexture,
538
562
  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,
563
+ transparentOcclusion: !!renderer.transparentOcclusion || renderer.maskMode === EFFECTS.spec.MaskMode.MASK,
564
+ side: (_renderer_side = renderer.side) != null ? _renderer_side : EFFECTS.spec.SideMode.DOUBLE,
541
565
  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
566
+ maskMode: (_renderer_maskMode = renderer.maskMode) != null ? _renderer_maskMode : EFFECTS.spec.MaskMode.NONE,
567
+ order: listIndex,
568
+ shape: renderer.shape
544
569
  };
545
570
  this.interaction = interaction;
546
571
  this.pauseVideo();
572
+ this.renderInfo = EFFECTS.getImageItemRenderInfo(this);
573
+ var geometry = this.createGeometry(EFFECTS.glContext.TRIANGLES);
574
+ var material = this.createMaterial(this.renderInfo, 2);
575
+ this.worldMatrix = EFFECTS.math.Matrix4.fromIdentity();
576
+ this.material = material;
577
+ this.geometry = geometry;
578
+ this.material.setVector4("_Color", new EFFECTS.math.Vector4().setFromArray(startColor));
579
+ this.material.setVector4("_TexOffset", new EFFECTS.math.Vector4().setFromArray([
580
+ 0,
581
+ 0,
582
+ 1,
583
+ 1
584
+ ]));
547
585
  this.setItem();
548
- this.material.setVector4("_Color", new effects.math.Vector4().setFromArray(startColor));
586
+ };
587
+ _proto.onStart = function onStart() {
588
+ var _this = this;
589
+ var _this_item_composition;
590
+ BaseRenderComponent.prototype.onStart.call(this);
591
+ (_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.on("goto", function(option) {
592
+ if (option.time > 0) {
593
+ _this.setCurrentTime(option.time);
594
+ }
595
+ });
549
596
  };
550
597
  _proto.onUpdate = function onUpdate(dt) {
551
598
  var _this_item_composition;
@@ -555,14 +602,14 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
555
602
  this.setVisible(true);
556
603
  this.playVideo();
557
604
  }
558
- if (time === 0 && ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem.endBehavior) === effects.spec.EndBehavior.freeze) {
605
+ if (time === 0 && ((_this_item_composition = this.item.composition) == null ? void 0 : _this_item_composition.rootItem.endBehavior) === EFFECTS.spec.EndBehavior.freeze) {
559
606
  this.pauseVideo();
560
607
  this.setCurrentTime(0);
561
608
  }
562
609
  if (Math.abs(time - duration) < this.threshold) {
563
- if (endBehavior === effects.spec.EndBehavior.freeze) {
610
+ if (endBehavior === EFFECTS.spec.EndBehavior.freeze) {
564
611
  this.pauseVideo();
565
- } else if (endBehavior === effects.spec.EndBehavior.restart) {
612
+ } else if (endBehavior === EFFECTS.spec.EndBehavior.restart) {
566
613
  this.setVisible(false);
567
614
  // 重播
568
615
  this.pauseVideo();
@@ -642,6 +689,14 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
642
689
  this.video.pause();
643
690
  }
644
691
  };
692
+ _proto.onDestroy = function onDestroy() {
693
+ BaseRenderComponent.prototype.onDestroy.call(this);
694
+ if (this.video) {
695
+ this.video.pause();
696
+ this.video.src = "";
697
+ this.video.load();
698
+ }
699
+ };
645
700
  _proto.onDisable = function onDisable() {
646
701
  var _this_video;
647
702
  BaseRenderComponent.prototype.onDisable.call(this);
@@ -653,9 +708,9 @@ exports.VideoComponent = /*#__PURE__*/ function(BaseRenderComponent) {
653
708
  this.playVideo();
654
709
  };
655
710
  return VideoComponent;
656
- }(effects.BaseRenderComponent);
711
+ }(EFFECTS.BaseRenderComponent);
657
712
  exports.VideoComponent = __decorate([
658
- effects.effectsClass(effects.spec.DataType.VideoComponent)
713
+ EFFECTS.effectsClass(EFFECTS.spec.DataType.VideoComponent)
659
714
  ], exports.VideoComponent);
660
715
 
661
716
  var AudioPlayer = /*#__PURE__*/ function() {
@@ -664,7 +719,7 @@ var AudioPlayer = /*#__PURE__*/ function() {
664
719
  this.audioSourceInfo = {};
665
720
  this.isSupportAudioContext = !!window["AudioContext"];
666
721
  this.options = {
667
- endBehavior: effects.spec.EndBehavior.destroy,
722
+ endBehavior: EFFECTS.spec.EndBehavior.destroy,
668
723
  duration: 0
669
724
  };
670
725
  this.destroyed = false;
@@ -715,11 +770,11 @@ var AudioPlayer = /*#__PURE__*/ function() {
715
770
  var _this_audioSourceInfo = this.audioSourceInfo, audioContext = _this_audioSourceInfo.audioContext, source = _this_audioSourceInfo.source;
716
771
  if (source && audioContext) {
717
772
  switch(this.options.endBehavior){
718
- case effects.spec.EndBehavior.destroy:
719
- case effects.spec.EndBehavior.freeze:
773
+ case EFFECTS.spec.EndBehavior.destroy:
774
+ case EFFECTS.spec.EndBehavior.freeze:
720
775
  source.start(0);
721
776
  break;
722
- case effects.spec.EndBehavior.restart:
777
+ case EFFECTS.spec.EndBehavior.restart:
723
778
  source.loop = true;
724
779
  source.loopStart = 0;
725
780
  source.loopEnd = this.options.duration;
@@ -853,7 +908,7 @@ exports.AudioComponent = /*#__PURE__*/ function(RendererComponent) {
853
908
  this.isVideoPlay = true;
854
909
  }
855
910
  if (Math.abs(time - duration) < this.threshold) {
856
- if (endBehavior === effects.spec.EndBehavior.destroy) {
911
+ if (endBehavior === EFFECTS.spec.EndBehavior.destroy) {
857
912
  this.audioPlayer.pause();
858
913
  }
859
914
  }
@@ -912,13 +967,20 @@ exports.AudioComponent = /*#__PURE__*/ function(RendererComponent) {
912
967
  this.audioPlayer.dispose();
913
968
  };
914
969
  return AudioComponent;
915
- }(effects.RendererComponent);
970
+ }(EFFECTS.RendererComponent);
916
971
  exports.AudioComponent = __decorate([
917
- effects.effectsClass(effects.spec.DataType.AudioComponent)
972
+ EFFECTS.effectsClass(EFFECTS.spec.DataType.AudioComponent)
918
973
  ], exports.AudioComponent);
919
974
 
920
- effects.registerPlugin("video", VideoLoader, effects.VFXItem, true);
921
- effects.registerPlugin("audio", AudioLoader, effects.VFXItem, true);
975
+ /**
976
+ * 插件版本号
977
+ */ var version = "2.1.0";
978
+ EFFECTS.registerPlugin("video", VideoLoader, EFFECTS.VFXItem, true);
979
+ EFFECTS.registerPlugin("audio", AudioLoader, EFFECTS.VFXItem, true);
980
+ EFFECTS.logger.info("Plugin multimedia version: " + version + ".");
981
+ if (version !== EFFECTS__namespace.version) {
982
+ 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!");
983
+ }
922
984
 
923
985
  exports.AudioPlayer = AudioPlayer;
924
986
  exports.MultimediaError = MultimediaError;
@@ -927,4 +989,5 @@ exports.loadAudio = loadAudio;
927
989
  exports.multimediaErrorDisplayMessageMap = multimediaErrorDisplayMessageMap;
928
990
  exports.multimediaErrorMessageMap = multimediaErrorMessageMap;
929
991
  exports.processMultimedia = processMultimedia;
992
+ exports.version = version;
930
993
  //# sourceMappingURL=index.js.map