@galacean/effects-plugin-multimedia 2.1.0-alpha.8 → 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.
- package/dist/audio/audio-loader.d.ts +5 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +95 -38
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +2 -2
- package/dist/index.min.js.map +1 -1
- package/dist/index.mjs +44 -7
- package/dist/index.mjs.map +1 -1
- package/dist/video/video-component.d.ts +2 -1
- package/dist/video/video-loader.d.ts +5 -1
- package/package.json +2 -2
|
@@ -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
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-
|
|
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
|
|
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 (
|
|
282
|
+
if (EFFECTS.passRenderLevel(medium.renderLevel, renderLevel)) {
|
|
263
283
|
var url = new URL(medium.url, location.href).href;
|
|
264
|
-
if (type ===
|
|
265
|
-
return
|
|
266
|
-
} else if (type ===
|
|
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
|
-
|
|
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 &&
|
|
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
|
-
|
|
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,
|
|
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
|
-
}(
|
|
480
|
+
}(EFFECTS.AbstractPlugin);
|
|
447
481
|
|
|
448
|
-
|
|
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,
|
|
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
|
-
}(
|
|
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(
|
|
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("
|
|
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 ===
|
|
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 :
|
|
536
|
-
blending: (_renderer_blending = renderer.blending) != null ? _renderer_blending :
|
|
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 ===
|
|
540
|
-
side: (_renderer_side = renderer.side) != null ? _renderer_side :
|
|
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 :
|
|
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
|
|
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) ===
|
|
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 ===
|
|
612
|
+
if (endBehavior === EFFECTS.spec.EndBehavior.freeze) {
|
|
564
613
|
this.pauseVideo();
|
|
565
|
-
} else if (endBehavior ===
|
|
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
|
-
}(
|
|
705
|
+
}(EFFECTS.BaseRenderComponent);
|
|
657
706
|
exports.VideoComponent = __decorate([
|
|
658
|
-
|
|
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:
|
|
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
|
|
719
|
-
case
|
|
767
|
+
case EFFECTS.spec.EndBehavior.destroy:
|
|
768
|
+
case EFFECTS.spec.EndBehavior.freeze:
|
|
720
769
|
source.start(0);
|
|
721
770
|
break;
|
|
722
|
-
case
|
|
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 ===
|
|
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
|
-
}(
|
|
964
|
+
}(EFFECTS.RendererComponent);
|
|
916
965
|
exports.AudioComponent = __decorate([
|
|
917
|
-
|
|
966
|
+
EFFECTS.effectsClass(EFFECTS.spec.DataType.AudioComponent)
|
|
918
967
|
], exports.AudioComponent);
|
|
919
968
|
|
|
920
|
-
|
|
921
|
-
|
|
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
|