@realsee/vreo 2.6.4-alpha.5 → 3.0.0-webgpu-react18.8
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/CHANGELOG.md +7 -0
- package/README.md +6 -6
- package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
- package/lib/PlayController/createHTMLAudioElement.d.ts.map +1 -0
- package/lib/PlayController/index.d.ts +14 -24
- package/lib/PlayController/index.d.ts.map +1 -0
- package/lib/PlayController/index.js +74 -210
- package/lib/PlayController/index.js.map +1 -0
- package/lib/Player/App.d.ts +2 -2
- package/lib/Player/App.d.ts.map +1 -0
- package/lib/Player/Controller.d.ts +11 -6
- package/lib/Player/Controller.d.ts.map +1 -0
- package/lib/Player/PlaybackLifecycle.d.ts +1 -0
- package/lib/Player/PlaybackLifecycle.d.ts.map +1 -0
- package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
- package/lib/Player/custom/SpatialScenePanel/index.d.ts.map +1 -0
- package/lib/Player/hooks.d.ts +3 -2
- package/lib/Player/hooks.d.ts.map +1 -0
- package/lib/Player/index.d.ts +3 -2
- package/lib/Player/index.d.ts.map +1 -0
- package/lib/Player/index.js +1769 -430
- package/lib/Player/index.js.map +1 -0
- package/lib/Player/modules/Drawer/index.d.ts +2 -2
- package/lib/Player/modules/Drawer/index.d.ts.map +1 -0
- package/lib/Player/modules/PopUp/index.d.ts +2 -2
- package/lib/Player/modules/PopUp/index.d.ts.map +1 -0
- package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
- package/lib/Player/modules/ResizeObserver/index.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +5 -2
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +8 -5
- package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts.map +1 -0
- package/lib/Player/modules/VideoAgent/index.d.ts +11 -2
- package/lib/Player/modules/VideoAgent/index.d.ts.map +1 -0
- package/lib/Player/modules/Wave/index.d.ts +2 -2
- package/lib/Player/modules/Wave/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/BgMusic/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/CameraMovement/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/InfoPanel/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/ModelVideo/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoEffect/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts +3 -2
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -0
- package/lib/Player/modules/keyframes/PanoTag/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/Prompter/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts.map +1 -0
- package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
- package/lib/Player/modules/keyframes/VideoEffect/index.d.ts.map +1 -0
- package/lib/Player/playback-types.d.ts +1 -0
- package/lib/Player/playback-types.d.ts.map +1 -0
- package/lib/Player/typings.d.ts +2 -1
- package/lib/Player/typings.d.ts.map +1 -0
- package/lib/chunks/index-BgPSzRSs.js +93 -0
- package/lib/chunks/index-BgPSzRSs.js.map +1 -0
- package/lib/chunks/index-CunyJn6H.js +51 -0
- package/lib/chunks/index-CunyJn6H.js.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts +2 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts +5 -6
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +5 -22
- package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts.map +1 -0
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts +2 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts.map +1 -0
- package/lib/fivePlugins/CameraMovementPlugin/index.d.ts +2 -1
- package/lib/fivePlugins/CameraMovementPlugin/index.d.ts.map +1 -0
- package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +2 -1
- package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts.map +1 -0
- package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts +2 -1
- package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts.map +1 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +12 -1
- package/lib/index.js.map +1 -0
- package/lib/plugins/CSS3DRenderPlugin.js +115 -0
- package/lib/plugins/CSS3DRenderPlugin.js.map +1 -0
- package/lib/plugins/CameraMovementPlugin.js +6 -0
- package/lib/plugins/CameraMovementPlugin.js.map +1 -0
- package/lib/plugins/ModelTVVideoPlugin.js +162 -0
- package/lib/plugins/ModelTVVideoPlugin.js.map +1 -0
- package/lib/react/index.d.ts +5 -4
- package/lib/react/index.d.ts.map +1 -0
- package/lib/react/index.js +39 -226
- package/lib/react/index.js.map +1 -0
- package/lib/shared-utils/Audio.d.ts +3 -1
- package/lib/shared-utils/Audio.d.ts.map +1 -0
- package/lib/shared-utils/AudioLike.d.ts +2 -1
- package/lib/shared-utils/AudioLike.d.ts.map +1 -0
- package/lib/shared-utils/Preloader.d.ts +1 -0
- package/lib/shared-utils/Preloader.d.ts.map +1 -0
- package/lib/shared-utils/addResizeListener.d.ts +2 -1
- package/lib/shared-utils/addResizeListener.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -0
- package/lib/shared-utils/animationFrame/BetterTween.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/index.d.ts +5 -14
- package/lib/shared-utils/animationFrame/index.d.ts.map +1 -0
- package/lib/shared-utils/animationFrame/tween.d.ts +1 -0
- package/lib/shared-utils/animationFrame/tween.d.ts.map +1 -0
- package/lib/shared-utils/createTransMatrix.d.ts +3 -1
- package/lib/shared-utils/createTransMatrix.d.ts.map +1 -0
- package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
- package/lib/shared-utils/getFileExpandedName.d.ts.map +1 -0
- package/lib/shared-utils/getMediaInfo.d.ts +1 -0
- package/lib/shared-utils/getMediaInfo.d.ts.map +1 -0
- package/lib/shared-utils/setElementDataset.d.ts +1 -0
- package/lib/shared-utils/setElementDataset.d.ts.map +1 -0
- package/lib/timeline/index.d.ts +18 -0
- package/lib/timeline/index.d.ts.map +1 -0
- package/lib/types/index.js +10 -0
- package/lib/types/index.js.map +1 -0
- package/lib/typings/VreoUnit.d.ts +2 -1
- package/lib/typings/VreoUnit.d.ts.map +1 -0
- package/lib/typings/index.d.ts +1 -0
- package/lib/typings/index.d.ts.map +1 -0
- package/package.json +51 -71
- package/lib/PlayController/createHTMLAudioElement.js +0 -30
- package/lib/Player/App.js +0 -52
- package/lib/Player/Controller.js +0 -530
- package/lib/Player/PlaybackLifecycle.js +0 -117
- package/lib/Player/custom/SpatialScenePanel/index.js +0 -263
- package/lib/Player/hooks.js +0 -22
- package/lib/Player/modules/Drawer/index.js +0 -39
- package/lib/Player/modules/PopUp/index.js +0 -23
- package/lib/Player/modules/ResizeObserver/index.js +0 -22
- package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +0 -445
- package/lib/Player/modules/VideoAgent/VideoAgentScene.js +0 -53
- package/lib/Player/modules/VideoAgent/index.js +0 -72
- package/lib/Player/modules/Wave/index.js +0 -171
- package/lib/Player/modules/keyframes/BgMusic/index.js +0 -65
- package/lib/Player/modules/keyframes/CameraMovement/index.js +0 -73
- package/lib/Player/modules/keyframes/InfoPanel/index.js +0 -170
- package/lib/Player/modules/keyframes/ModelVideo/index.js +0 -126
- package/lib/Player/modules/keyframes/PanoEffect/index.js +0 -99
- package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -30
- package/lib/Player/modules/keyframes/PanoTag/index.js +0 -110
- package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -122
- package/lib/Player/modules/keyframes/Prompter/index.js +0 -56
- package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +0 -98
- package/lib/Player/modules/keyframes/VideoEffect/index.js +0 -152
- package/lib/Player/playback-types.js +0 -1
- package/lib/Player/typings.js +0 -1
- package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -4
- package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -25
- package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -4
- package/lib/fivePlugins/CSS3DRenderPlugin/index.js +0 -226
- package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +0 -8
- package/lib/fivePlugins/CameraMovementPlugin/index.js +0 -238
- package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -15
- package/lib/fivePlugins/ModelTVVideoPlugin/index.js +0 -347
- package/lib/shared-utils/Audio.js +0 -147
- package/lib/shared-utils/AudioLike.js +0 -120
- package/lib/shared-utils/Preloader.js +0 -37
- package/lib/shared-utils/addResizeListener.js +0 -39
- package/lib/shared-utils/animationFrame/BetterTween.js +0 -56
- package/lib/shared-utils/animationFrame/index.js +0 -52
- package/lib/shared-utils/animationFrame/tween.js +0 -56
- package/lib/shared-utils/createTransMatrix.js +0 -12
- package/lib/shared-utils/getFileExpandedName.js +0 -6
- package/lib/shared-utils/getMediaInfo.js +0 -54
- package/lib/shared-utils/setElementDataset.js +0 -16
- package/lib/typings/VreoUnit.js +0 -171
- package/lib/typings/index.js +0 -1
|
@@ -1,347 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
|
-
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
4
|
-
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
5
|
-
import * as THREE from 'three';
|
|
6
|
-
export var ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
|
|
7
|
-
var videoElement = _ref.videoElement,
|
|
8
|
-
mediaManager = _ref.mediaManager;
|
|
9
|
-
var listeners = [];
|
|
10
|
-
var on = function on(name, callback) {
|
|
11
|
-
listeners.push(function () {
|
|
12
|
-
five.off(name, callback);
|
|
13
|
-
});
|
|
14
|
-
return five.on(name, callback);
|
|
15
|
-
};
|
|
16
|
-
var generation = 0;
|
|
17
|
-
var disposed = false;
|
|
18
|
-
var state = {
|
|
19
|
-
videoMeshes: [],
|
|
20
|
-
videoTextureEnabled: false,
|
|
21
|
-
videoSource: '',
|
|
22
|
-
rectPoints: [],
|
|
23
|
-
enabled: false,
|
|
24
|
-
videoElement: videoElement
|
|
25
|
-
};
|
|
26
|
-
var session;
|
|
27
|
-
var output;
|
|
28
|
-
var removeReady;
|
|
29
|
-
var stop = function stop() {
|
|
30
|
-
var _removeReady;
|
|
31
|
-
++generation;
|
|
32
|
-
(_removeReady = removeReady) === null || _removeReady === void 0 || _removeReady();
|
|
33
|
-
removeReady = undefined;
|
|
34
|
-
if (output) {
|
|
35
|
-
output.muted = true;
|
|
36
|
-
output.pause();
|
|
37
|
-
}
|
|
38
|
-
output = undefined;
|
|
39
|
-
session = undefined;
|
|
40
|
-
state.enabled = false;
|
|
41
|
-
state.videoMeshes.forEach(function (mesh) {
|
|
42
|
-
mesh.geometry.dispose();
|
|
43
|
-
mesh.material.dispose();
|
|
44
|
-
five.scene.remove(mesh);
|
|
45
|
-
});
|
|
46
|
-
state.videoMeshes = [];
|
|
47
|
-
five.needsRender = true;
|
|
48
|
-
};
|
|
49
|
-
var controller = mediaManager === null || mediaManager === void 0 ? void 0 : mediaManager.createController({
|
|
50
|
-
label: 'vreo-model-video',
|
|
51
|
-
onCancel: stop
|
|
52
|
-
});
|
|
53
|
-
var bind = function bind(userAction, audible) {
|
|
54
|
-
var _state$videoTexture, _controller$begin;
|
|
55
|
-
var element = (_state$videoTexture = state.videoTexture) === null || _state$videoTexture === void 0 ? void 0 : _state$videoTexture.image;
|
|
56
|
-
if (!element) return undefined;
|
|
57
|
-
var next = (_controller$begin = controller === null || controller === void 0 ? void 0 : controller.begin({
|
|
58
|
-
userAction: userAction,
|
|
59
|
-
audible: audible
|
|
60
|
-
})) !== null && _controller$begin !== void 0 ? _controller$begin : undefined;
|
|
61
|
-
if (controller && !next) return undefined;
|
|
62
|
-
session = next;
|
|
63
|
-
return output = next ? next.bind(element) : element;
|
|
64
|
-
};
|
|
65
|
-
var setMuted = function setMuted(muted) {
|
|
66
|
-
var userAction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
67
|
-
var wasEnabled = state.enabled;
|
|
68
|
-
var media = !muted ? bind(userAction, true) : output;
|
|
69
|
-
if (!media) return;
|
|
70
|
-
media.muted = muted;
|
|
71
|
-
if (wasEnabled && !state.enabled) {
|
|
72
|
-
state.enabled = true;
|
|
73
|
-
state.videoMeshes = createPanoVideoMeshes();
|
|
74
|
-
state.videoMeshes.forEach(function (mesh) {
|
|
75
|
-
return five.scene.add(mesh);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
var run = session;
|
|
79
|
-
var current = generation;
|
|
80
|
-
if (state.enabled) void media.play().catch(function (error) {
|
|
81
|
-
if (current === generation && !(run !== null && run !== void 0 && run.signal.aborted)) {
|
|
82
|
-
disable();
|
|
83
|
-
console.error(error);
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
};
|
|
87
|
-
var getMuted = function getMuted() {
|
|
88
|
-
var _output$muted, _output;
|
|
89
|
-
return (_output$muted = (_output = output) === null || _output === void 0 ? void 0 : _output.muted) !== null && _output$muted !== void 0 ? _output$muted : true;
|
|
90
|
-
};
|
|
91
|
-
var enable = function enable() {
|
|
92
|
-
if (disposed || state.enabled || !state.videoTexture) return;
|
|
93
|
-
var media = bind(false, false);
|
|
94
|
-
if (!media) return;
|
|
95
|
-
var current = generation;
|
|
96
|
-
var run = session;
|
|
97
|
-
var element = state.videoTexture.image;
|
|
98
|
-
var valid = function valid() {
|
|
99
|
-
return current === generation && !disposed && state.enabled && !(run !== null && run !== void 0 && run.signal.aborted);
|
|
100
|
-
};
|
|
101
|
-
state.enabled = true;
|
|
102
|
-
state.videoMeshes = createPanoVideoMeshes();
|
|
103
|
-
state.videoMeshes.forEach(function (mesh) {
|
|
104
|
-
return five.scene.add(mesh);
|
|
105
|
-
});
|
|
106
|
-
var _timeupdate = function timeupdate() {
|
|
107
|
-
element.removeEventListener('timeupdate', _timeupdate);
|
|
108
|
-
if (!valid()) return;
|
|
109
|
-
state.videoTextureEnabled = true;
|
|
110
|
-
state.videoMeshes.forEach(function (mesh) {
|
|
111
|
-
mesh.material.map = state.videoTexture;
|
|
112
|
-
});
|
|
113
|
-
five.needsRender = true;
|
|
114
|
-
};
|
|
115
|
-
var _play = function play() {
|
|
116
|
-
five.off('modelLoaded', _play);
|
|
117
|
-
if (!valid()) return;
|
|
118
|
-
element.addEventListener('timeupdate', _timeupdate);
|
|
119
|
-
void media.play().catch(function (error) {
|
|
120
|
-
if (valid()) {
|
|
121
|
-
disable();
|
|
122
|
-
console.error(error);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
removeReady = function removeReady() {
|
|
127
|
-
five.off('modelLoaded', _play);
|
|
128
|
-
element.removeEventListener('timeupdate', _timeupdate);
|
|
129
|
-
};
|
|
130
|
-
if (five.model.loaded) _play();else five.on('modelLoaded', _play);
|
|
131
|
-
};
|
|
132
|
-
var disable = function disable() {
|
|
133
|
-
controller === null || controller === void 0 || controller.cancel();
|
|
134
|
-
stop();
|
|
135
|
-
};
|
|
136
|
-
var createPanoVideoMeshes = function createPanoVideoMeshes() {
|
|
137
|
-
return state.rectPoints.map(function (points, index) {
|
|
138
|
-
var geometry = new THREE.BufferGeometry();
|
|
139
|
-
var segments = 128;
|
|
140
|
-
var verticesArray = [];
|
|
141
|
-
verticesArray.push(points[0].x, points[0].y, points[0].z);
|
|
142
|
-
for (var i = 1; i < segments; i++) {
|
|
143
|
-
verticesArray.push(points[0].x + (points[1].x - points[0].x) * i / segments, points[0].y + (points[1].y - points[0].y) * i / segments, points[0].z + (points[1].z - points[0].z) * i / segments);
|
|
144
|
-
}
|
|
145
|
-
verticesArray.push(points[1].x, points[1].y, points[1].z);
|
|
146
|
-
verticesArray.push(points[2].x, points[2].y, points[2].z);
|
|
147
|
-
for (var _i = 1; _i < segments; _i++) {
|
|
148
|
-
verticesArray.push(points[2].x + (points[3].x - points[2].x) * _i / segments, points[2].y + (points[3].y - points[2].y) * _i / segments, points[2].z + (points[3].z - points[2].z) * _i / segments);
|
|
149
|
-
}
|
|
150
|
-
verticesArray.push(points[3].x, points[3].y, points[3].z);
|
|
151
|
-
var uvArray = [];
|
|
152
|
-
uvArray.push(0, 1);
|
|
153
|
-
for (var _i2 = 1; _i2 < segments; _i2++) {
|
|
154
|
-
uvArray.push(0, 1 - _i2 / segments);
|
|
155
|
-
}
|
|
156
|
-
uvArray.push(0, 0);
|
|
157
|
-
uvArray.push(1, 0);
|
|
158
|
-
for (var _i3 = 1; _i3 < segments; _i3++) {
|
|
159
|
-
uvArray.push(1, _i3 / segments);
|
|
160
|
-
}
|
|
161
|
-
uvArray.push(1, 1);
|
|
162
|
-
var indicesArray = [];
|
|
163
|
-
for (var _i4 = 0; _i4 < segments; _i4++) {
|
|
164
|
-
indicesArray.push(_i4, _i4 + 1, segments * 2 - _i4, _i4, segments * 2 - _i4, segments * 2 + 1 - _i4);
|
|
165
|
-
}
|
|
166
|
-
geometry.setAttribute('position', new THREE.BufferAttribute(new Float32Array(verticesArray), 3));
|
|
167
|
-
geometry.setAttribute('uv', new THREE.BufferAttribute(new Float32Array(uvArray), 2));
|
|
168
|
-
geometry.setIndex(new THREE.BufferAttribute(new Uint32Array(indicesArray), 1));
|
|
169
|
-
var material = new THREE.MeshBasicMaterial({
|
|
170
|
-
map: state.videoTextureEnabled ? state.videoTexture : state.imageTexture,
|
|
171
|
-
side: THREE.DoubleSide
|
|
172
|
-
});
|
|
173
|
-
var mesh = new THREE.Mesh(geometry, material);
|
|
174
|
-
mesh.renderOrder = 1;
|
|
175
|
-
mesh.name = "video-".concat(index, "-").concat(performance.now());
|
|
176
|
-
return mesh;
|
|
177
|
-
});
|
|
178
|
-
};
|
|
179
|
-
var getImageTexture = function getImageTexture(source) {
|
|
180
|
-
var texture = new THREE.TextureLoader().load(source);
|
|
181
|
-
texture.minFilter = THREE.LinearFilter;
|
|
182
|
-
texture.magFilter = THREE.LinearFilter;
|
|
183
|
-
texture.format = THREE.RGBFormat;
|
|
184
|
-
return texture;
|
|
185
|
-
};
|
|
186
|
-
var getVideoTexture = function getVideoTexture(source, video) {
|
|
187
|
-
var valid = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {
|
|
188
|
-
return true;
|
|
189
|
-
};
|
|
190
|
-
return new Promise(function (resolve, reject) {
|
|
191
|
-
var xhr = new XMLHttpRequest();
|
|
192
|
-
xhr.onreadystatechange = function () {
|
|
193
|
-
if (xhr.readyState == 4) {
|
|
194
|
-
if (!valid()) {
|
|
195
|
-
reject(new DOMException('Playback cancelled', 'AbortError'));
|
|
196
|
-
return;
|
|
197
|
-
}
|
|
198
|
-
if (xhr.status == 200) {
|
|
199
|
-
var url = window.URL || window.webkitURL;
|
|
200
|
-
video = video || document.createElement('video');
|
|
201
|
-
video.crossOrigin = 'anonymous';
|
|
202
|
-
video.autoplay = false;
|
|
203
|
-
video.muted = true;
|
|
204
|
-
video.loop = true;
|
|
205
|
-
video.playsInline = true;
|
|
206
|
-
video.src = url.createObjectURL(xhr.response);
|
|
207
|
-
var texture = new THREE.VideoTexture(video);
|
|
208
|
-
texture.minFilter = THREE.LinearFilter;
|
|
209
|
-
texture.magFilter = THREE.LinearFilter;
|
|
210
|
-
texture.format = THREE.RGBFormat;
|
|
211
|
-
resolve(Object.assign(texture, {
|
|
212
|
-
videoSource: source
|
|
213
|
-
}));
|
|
214
|
-
} else {
|
|
215
|
-
reject(new Error('Video download Error: ' + xhr.status));
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
};
|
|
219
|
-
xhr.onerror = function (error) {
|
|
220
|
-
return reject(error);
|
|
221
|
-
};
|
|
222
|
-
xhr.open('GET', source);
|
|
223
|
-
xhr.responseType = 'blob';
|
|
224
|
-
xhr.send();
|
|
225
|
-
});
|
|
226
|
-
};
|
|
227
|
-
var load = /*#__PURE__*/function () {
|
|
228
|
-
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(data, videoElement) {
|
|
229
|
-
var current, video_src, video_poster_src, points, texture;
|
|
230
|
-
return _regenerator().w(function (_context) {
|
|
231
|
-
while (1) switch (_context.n) {
|
|
232
|
-
case 0:
|
|
233
|
-
current = ++generation;
|
|
234
|
-
video_src = data.video_src, video_poster_src = data.video_poster_src, points = data.points;
|
|
235
|
-
state.videoSource = video_src;
|
|
236
|
-
state.rectPoints = points.map(function (items) {
|
|
237
|
-
return items.map(function (_ref3) {
|
|
238
|
-
var x = _ref3.x,
|
|
239
|
-
y = _ref3.y,
|
|
240
|
-
z = _ref3.z;
|
|
241
|
-
return new THREE.Vector3(x, y, z);
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
state.imageTexture = getImageTexture(video_poster_src);
|
|
245
|
-
if (videoElement) {
|
|
246
|
-
state.videoElement = videoElement;
|
|
247
|
-
}
|
|
248
|
-
_context.n = 1;
|
|
249
|
-
return getVideoTexture(state.videoSource, state.videoElement, function () {
|
|
250
|
-
return !disposed && current === generation;
|
|
251
|
-
});
|
|
252
|
-
case 1:
|
|
253
|
-
texture = _context.v;
|
|
254
|
-
if (!(disposed || current !== generation)) {
|
|
255
|
-
_context.n = 2;
|
|
256
|
-
break;
|
|
257
|
-
}
|
|
258
|
-
texture.image.muted = true;
|
|
259
|
-
texture.image.pause();
|
|
260
|
-
URL.revokeObjectURL(texture.image.src);
|
|
261
|
-
texture.dispose();
|
|
262
|
-
return _context.a(2);
|
|
263
|
-
case 2:
|
|
264
|
-
if (state.videoTexture) {
|
|
265
|
-
state.videoTexture.image.pause();
|
|
266
|
-
URL.revokeObjectURL(state.videoTexture.image.src);
|
|
267
|
-
state.videoTexture.dispose();
|
|
268
|
-
}
|
|
269
|
-
state.videoTexture = texture;
|
|
270
|
-
if (data.enable) enable();
|
|
271
|
-
case 3:
|
|
272
|
-
return _context.a(2);
|
|
273
|
-
}
|
|
274
|
-
}, _callee);
|
|
275
|
-
}));
|
|
276
|
-
return function load(_x, _x2) {
|
|
277
|
-
return _ref2.apply(this, arguments);
|
|
278
|
-
};
|
|
279
|
-
}();
|
|
280
|
-
on('modeChange', function () {
|
|
281
|
-
return setMuted(true);
|
|
282
|
-
});
|
|
283
|
-
on('wantsTapGesture', function (raycaster) {
|
|
284
|
-
if (!state.enabled) return;
|
|
285
|
-
var _raycaster$intersectO = raycaster.intersectObjects(five.scene.children, true),
|
|
286
|
-
_raycaster$intersectO2 = _slicedToArray(_raycaster$intersectO, 1),
|
|
287
|
-
intersect = _raycaster$intersectO2[0];
|
|
288
|
-
if (!!intersect && /^video/.test(intersect.object.name)) {
|
|
289
|
-
if (state.videoTexture) setMuted(!state.videoTexture.image.muted, true);
|
|
290
|
-
return false;
|
|
291
|
-
}
|
|
292
|
-
});
|
|
293
|
-
on('panoArrived', function () {
|
|
294
|
-
if (!state.enabled) return;
|
|
295
|
-
if (getMuted()) return;
|
|
296
|
-
var cameraPosition = five.camera.position;
|
|
297
|
-
var visible = state.rectPoints.find(function (points) {
|
|
298
|
-
var centerVector = points.reduce(function (total, curr) {
|
|
299
|
-
return new THREE.Vector3(total.x + curr.x / points.length, total.y + curr.y / points.length, total.z + curr.z / points.length);
|
|
300
|
-
}, new THREE.Vector3());
|
|
301
|
-
return points.map(function (point) {
|
|
302
|
-
return new THREE.Vector3((point.x + centerVector.x) / 2, (point.y + centerVector.y) / 2, (point.z + centerVector.z) / 2);
|
|
303
|
-
}).filter(function (vector) {
|
|
304
|
-
vector = vector.clone().sub(cameraPosition).normalize();
|
|
305
|
-
var raycaster = new THREE.Raycaster(cameraPosition, vector);
|
|
306
|
-
var _raycaster$intersectO3 = raycaster.intersectObjects(five.scene.children, true),
|
|
307
|
-
_raycaster$intersectO4 = _slicedToArray(_raycaster$intersectO3, 1),
|
|
308
|
-
intersect = _raycaster$intersectO4[0];
|
|
309
|
-
return !!intersect && /^video/.test(intersect.object.name);
|
|
310
|
-
}).length >= 2;
|
|
311
|
-
});
|
|
312
|
-
if (!visible) setMuted(true);
|
|
313
|
-
});
|
|
314
|
-
on('renderFrame', function () {
|
|
315
|
-
state.videoMeshes.forEach(function (meshes) {
|
|
316
|
-
if (meshes)
|
|
317
|
-
//@ts-ignore
|
|
318
|
-
meshes.needsRender = true;
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
|
-
on('load', function (input) {
|
|
322
|
-
if (input.modelTVVideoData) {
|
|
323
|
-
load(input.modelTVVideoData);
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
var dispose = function dispose() {
|
|
327
|
-
var _state$imageTexture;
|
|
328
|
-
disposed = true;
|
|
329
|
-
++generation;
|
|
330
|
-
disable();
|
|
331
|
-
controller === null || controller === void 0 || controller.dispose();
|
|
332
|
-
listeners.splice(0).forEach(function (remove) {
|
|
333
|
-
return remove();
|
|
334
|
-
});
|
|
335
|
-
(_state$imageTexture = state.imageTexture) === null || _state$imageTexture === void 0 || _state$imageTexture.dispose();
|
|
336
|
-
if (state.videoTexture) {
|
|
337
|
-
URL.revokeObjectURL(state.videoTexture.image.src);
|
|
338
|
-
state.videoTexture.dispose();
|
|
339
|
-
}
|
|
340
|
-
};
|
|
341
|
-
return {
|
|
342
|
-
enable: enable,
|
|
343
|
-
disable: disable,
|
|
344
|
-
load: load,
|
|
345
|
-
dispose: dispose
|
|
346
|
-
};
|
|
347
|
-
};
|
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
5
|
-
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
6
|
-
import _get from "@babel/runtime/helpers/esm/get";
|
|
7
|
-
import _wrapNativeSuper from "@babel/runtime/helpers/esm/wrapNativeSuper";
|
|
8
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
9
|
-
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
10
|
-
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
11
|
-
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
12
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
13
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
14
|
-
function _superPropGet(t, o, e, r) { var p = _get(_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; }
|
|
15
|
-
var blankAudioSrc = 'data:audio/mpeg;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAADAAAGhgBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr///////////////////////////////////////////8AAAA5TEFNRTMuOThyAc0AAAAAAAAAABSAJAiqQgAAgAAABobxtI73AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uQxAACFEII9ACZ/sJZwWEoEb8w/////N//////JcxjHjf+7/v/H2PzCCFAiDtGeyBCIx7bJJ1mmEEMy6g8mm2c8nrGABB4h2Mkmn//4z/73u773R5qHHu/j/w7Kxkzh5lWRWdsifCkNAnY9Zc1HvDAhjhSHdFkHFzLmabt/AQxSg2wwzLhHIJOBnAWwVY4zrhIYhhc2kvhYDfQ4hDi2Gmh5KyFn8EcGIrHAngNgIwVIEMf5bzbAiTRoAD///8z/KVhkkWEle6IX+d/z4fvH3BShK1e5kmjkCMoxVmXhd4ROlTKo3iipasvTilY21q19ta30/v/0/idPX1v8PNxJL6ramnOVsdvMv2akO0iSYIzdJFirtzWXCZicS9vHqvSKyqm5XJBdqBwPxyfJdykhWTZ0G0ZyTZGpLKxsNwwoRhsx3tZfhwmeOBVISm3impAC/IT/8hP/EKEM1KMdVdVKM2rHV4x7HVXZvbVVKN/qq8CiV9VL9jjH/6l6qf7MBCjZmOqsAibjcP+qqqv0oxqpa/NVW286hPo1nz2L/h8+jXt//uSxCmDU2IK/ECN98KKtE5IYzNoCfbw+u9i5r8PoadUMFPKqWL4LK3T/LCraMSHGkW4bpLXR/E6LlHOVQxmslKVJ8IULktMN06N0FKCpHCoYsjC4F+Z0NVqdNFoGSTjSiyjzLdnZ2fNqTi2eHKONONKLMPMKLONKLMPQRJGlFxZRoKcJFAYEeIFiRQkUWUeYfef//Ko04soswso40UJAgMw8wosososy0EalnZyjQUGBRQGIFggOWUacWUeYmuadrZziQKKEgQsQLAhQkUJAgMQDghltLO1onp0cpkNInSFMqlYeSEJ5AHsqFdOwy1DA2sRmRJKxdKRfLhfLw5BzUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7ksRRA8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=';
|
|
16
|
-
// 下面这段空音频居然在11pro和xr上播不出来
|
|
17
|
-
// const blankAudioSrc = 'data:audio/mpeg;base64,//AAAAHGZ0eXBNNEEgAAAAAE00QSBpc29tbXA0MgAAAAFtZGF0AAAAAAAAABwA0AAHANAABwDQAAcAAAM+bW9vdgAAAGxtdmhkAAAAAN+jti7fo7YuAACsRAAADAAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAdB0cmFrAAAAXHRraGQAAAAB36O2Lt+jti4AAAABAAAAAAAADAAAAAAAAAAAAAAAAAABAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAFsbWRpYQAAACBtZGhkAAAAAN+jti7fo7YuAACsRAAADABVxAAAAAAAMWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABDb3JlIE1lZGlhIEF1ZGlvAAAAARNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAANdzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAAABICAgBRAFAAYAAAA+gAAAPoABYCAgAISCAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAAADAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAwAAAAEAAAAgc3RzegAAAAAAAAAAAAAAAwAAAAQAAAAEAAAABAAAABRzdGNvAAAAAAAAAAEAAAAsAAAA+nVkdGEAAADybWV0YQAAAAAAAAAiaGRscgAAAAAAAAAAbWRpcgAAAAAAAAAAAAAAAAAAAAAAxGlsc3QAAAC8LS0tLQAAABxtZWFuAAAAAGNvbS5hcHBsZS5pVHVuZXMAAAAUbmFtZQAAAABpVHVuU01QQgAAAIRkYXRhAAAAAQAAAAAgMDAwMDAwMDAgMDAwMDA4NDAgMDAwMDAzQzAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA=='
|
|
18
|
-
|
|
19
|
-
export var audioList = [];
|
|
20
|
-
export function getAudio(src) {
|
|
21
|
-
var audio = audioList.find(function (audio) {
|
|
22
|
-
return !audio.realSrc || audio.realSrc === blankAudioSrc;
|
|
23
|
-
});
|
|
24
|
-
if (!audio) {
|
|
25
|
-
// console.warn('未找到缓存音频,已新建', audioList)
|
|
26
|
-
audio = new IAudio(blankAudioSrc);
|
|
27
|
-
audioList.push(audio);
|
|
28
|
-
}
|
|
29
|
-
if (src) {
|
|
30
|
-
audio.src = src;
|
|
31
|
-
}
|
|
32
|
-
return audio;
|
|
33
|
-
}
|
|
34
|
-
export function waitForBlankAudioGenerated() {
|
|
35
|
-
return _waitForBlankAudioGenerated.apply(this, arguments);
|
|
36
|
-
}
|
|
37
|
-
function _waitForBlankAudioGenerated() {
|
|
38
|
-
_waitForBlankAudioGenerated = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
|
|
39
|
-
var checkInterval,
|
|
40
|
-
timeout,
|
|
41
|
-
startTime,
|
|
42
|
-
isTimedOut,
|
|
43
|
-
_args = arguments;
|
|
44
|
-
return _regenerator().w(function (_context) {
|
|
45
|
-
while (1) switch (_context.n) {
|
|
46
|
-
case 0:
|
|
47
|
-
checkInterval = _args.length > 0 && _args[0] !== undefined ? _args[0] : 100;
|
|
48
|
-
timeout = _args.length > 1 && _args[1] !== undefined ? _args[1] : 2000;
|
|
49
|
-
console.log('waitForBlankAudioGenerated, needGenerate: ', audioList.some(function (audio) {
|
|
50
|
-
return !audio.ended && audio.src === blankAudioSrc;
|
|
51
|
-
}));
|
|
52
|
-
// while any audioList not ended
|
|
53
|
-
startTime = Date.now();
|
|
54
|
-
isTimedOut = false;
|
|
55
|
-
case 1:
|
|
56
|
-
if (!(audioList.some(function (audio) {
|
|
57
|
-
return !audio.ended && audio.src === blankAudioSrc;
|
|
58
|
-
}) && !isTimedOut)) {
|
|
59
|
-
_context.n = 4;
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
if (!(Date.now() - startTime > timeout)) {
|
|
63
|
-
_context.n = 2;
|
|
64
|
-
break;
|
|
65
|
-
}
|
|
66
|
-
isTimedOut = true;
|
|
67
|
-
return _context.a(2, Promise.resolve());
|
|
68
|
-
case 2:
|
|
69
|
-
_context.n = 3;
|
|
70
|
-
return new Promise(function (resolve) {
|
|
71
|
-
return setTimeout(resolve, checkInterval);
|
|
72
|
-
});
|
|
73
|
-
case 3:
|
|
74
|
-
_context.n = 1;
|
|
75
|
-
break;
|
|
76
|
-
case 4:
|
|
77
|
-
return _context.a(2);
|
|
78
|
-
}
|
|
79
|
-
}, _callee);
|
|
80
|
-
}));
|
|
81
|
-
return _waitForBlankAudioGenerated.apply(this, arguments);
|
|
82
|
-
}
|
|
83
|
-
export function generateBlankAudio(length) {
|
|
84
|
-
// 判断一下已经生成几个了,防止重复生成
|
|
85
|
-
var generateLength = length - audioList.length;
|
|
86
|
-
if (generateLength <= 0) return;
|
|
87
|
-
for (var i = 0; i < generateLength; i++) {
|
|
88
|
-
audioList.push(new IAudio(blankAudioSrc));
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
function initAudio(audio) {
|
|
92
|
-
if (audio.inited) return;
|
|
93
|
-
if (audio.src) {
|
|
94
|
-
audio.inited = true;
|
|
95
|
-
audio.removeDocumentEventListener();
|
|
96
|
-
}
|
|
97
|
-
if (audio.src === blankAudioSrc) {
|
|
98
|
-
audio.play();
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
var IAudio = /*#__PURE__*/function (_Audio) {
|
|
102
|
-
function IAudio(src) {
|
|
103
|
-
var _this;
|
|
104
|
-
_classCallCheck(this, IAudio);
|
|
105
|
-
_this = _callSuper(this, IAudio, [src]);
|
|
106
|
-
_defineProperty(_this, "preload", 'auto');
|
|
107
|
-
_defineProperty(_this, "realSrc", '');
|
|
108
|
-
_defineProperty(_this, "inited", false);
|
|
109
|
-
_this.realSrc = src !== null && src !== void 0 ? src : '';
|
|
110
|
-
_this.muted = true;
|
|
111
|
-
_superPropGet((_this, IAudio), "addEventListener", _this, 3)(['ended', function () {
|
|
112
|
-
if (_this.src === blankAudioSrc) _this.src = '';
|
|
113
|
-
}]);
|
|
114
|
-
var init = function init() {
|
|
115
|
-
return initAudio(_this);
|
|
116
|
-
};
|
|
117
|
-
document.addEventListener('click', init);
|
|
118
|
-
document.addEventListener('touchend', init);
|
|
119
|
-
_this.removeDocumentEventListener = function () {
|
|
120
|
-
document.removeEventListener('click', init);
|
|
121
|
-
document.removeEventListener('touchend', init);
|
|
122
|
-
};
|
|
123
|
-
return _this;
|
|
124
|
-
}
|
|
125
|
-
_inherits(IAudio, _Audio);
|
|
126
|
-
return _createClass(IAudio, [{
|
|
127
|
-
key: "src",
|
|
128
|
-
get:
|
|
129
|
-
/**
|
|
130
|
-
* 获取音频源 URL
|
|
131
|
-
* @returns {string} 当前音频源 URL
|
|
132
|
-
*/
|
|
133
|
-
function get() {
|
|
134
|
-
return this.getAttribute('src') || '';
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* 设置音频源 URL
|
|
139
|
-
* @param paramsSrc - 音频源 URL
|
|
140
|
-
*/,
|
|
141
|
-
set: function set(paramsSrc) {
|
|
142
|
-
this.muted = true;
|
|
143
|
-
this.setAttribute('src', paramsSrc);
|
|
144
|
-
this.realSrc = paramsSrc;
|
|
145
|
-
}
|
|
146
|
-
}]);
|
|
147
|
-
}(/*#__PURE__*/_wrapNativeSuper(Audio));
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
2
|
-
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
3
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
4
|
-
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
5
|
-
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
6
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
7
|
-
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
|
-
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
|
-
import { Subscribe } from '@realsee/five';
|
|
10
|
-
import { requestAnimationFrameInterval } from "./animationFrame/index.js";
|
|
11
|
-
/**
|
|
12
|
-
* 模拟 `<Audio>` 事件。
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* 模拟 `<Audio>` 功能:没有音频,但执行逻辑跟 `<Audio>` 相似。
|
|
16
|
-
*/
|
|
17
|
-
export var AudioLike = /*#__PURE__*/function (_Subscribe) {
|
|
18
|
-
function AudioLike() {
|
|
19
|
-
var _this;
|
|
20
|
-
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
21
|
-
duration = _ref.duration;
|
|
22
|
-
_classCallCheck(this, AudioLike);
|
|
23
|
-
_this = _callSuper(this, AudioLike);
|
|
24
|
-
_defineProperty(_this, "$timestamp", null);
|
|
25
|
-
_defineProperty(_this, "$currentTime", 0);
|
|
26
|
-
_defineProperty(_this, "$duration", 0);
|
|
27
|
-
_defineProperty(_this, "muted", false);
|
|
28
|
-
_defineProperty(_this, "src", '');
|
|
29
|
-
if (duration) {
|
|
30
|
-
_this.$duration = duration;
|
|
31
|
-
}
|
|
32
|
-
return _this;
|
|
33
|
-
}
|
|
34
|
-
_inherits(AudioLike, _Subscribe);
|
|
35
|
-
return _createClass(AudioLike, [{
|
|
36
|
-
key: "setAttribute",
|
|
37
|
-
value: function setAttribute(name, value) {
|
|
38
|
-
// nothing todo
|
|
39
|
-
}
|
|
40
|
-
}, {
|
|
41
|
-
key: "play",
|
|
42
|
-
value: function play() {
|
|
43
|
-
var _this2 = this;
|
|
44
|
-
if (this.stopInterval) return;
|
|
45
|
-
if (this.$currentTime === this.$duration) {
|
|
46
|
-
this.$currentTime = 0;
|
|
47
|
-
}
|
|
48
|
-
if (this.$timestamp === null) {
|
|
49
|
-
this.$timestamp = performance.now();
|
|
50
|
-
}
|
|
51
|
-
this.stopInterval = requestAnimationFrameInterval(function () {
|
|
52
|
-
return _this2.requestAnimationFrameLoop();
|
|
53
|
-
});
|
|
54
|
-
this.emit('play');
|
|
55
|
-
}
|
|
56
|
-
}, {
|
|
57
|
-
key: "pause",
|
|
58
|
-
value: function pause() {
|
|
59
|
-
if (this.stopInterval) {
|
|
60
|
-
this.stopInterval();
|
|
61
|
-
this.emit('pause');
|
|
62
|
-
this.stopInterval = undefined;
|
|
63
|
-
}
|
|
64
|
-
this.$timestamp = null;
|
|
65
|
-
}
|
|
66
|
-
}, {
|
|
67
|
-
key: "requestAnimationFrameLoop",
|
|
68
|
-
value: function requestAnimationFrameLoop() {
|
|
69
|
-
if (this.$timestamp === null) return;
|
|
70
|
-
var now = performance.now();
|
|
71
|
-
this.$currentTime += now - this.$timestamp;
|
|
72
|
-
this.$timestamp = now;
|
|
73
|
-
this.emit('timeupdate');
|
|
74
|
-
if (this.$currentTime >= this.$duration - 10) {
|
|
75
|
-
this.$currentTime = this.$duration;
|
|
76
|
-
this.pause();
|
|
77
|
-
this.emit('ended');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
key: "currentTime",
|
|
82
|
-
get: function get() {
|
|
83
|
-
return this.$currentTime / 1000;
|
|
84
|
-
},
|
|
85
|
-
set: function set(time) {
|
|
86
|
-
this.$currentTime = time * 1000;
|
|
87
|
-
}
|
|
88
|
-
}, {
|
|
89
|
-
key: "duration",
|
|
90
|
-
get: function get() {
|
|
91
|
-
return this.$duration;
|
|
92
|
-
},
|
|
93
|
-
set: function set(duration) {
|
|
94
|
-
this.$duration = duration;
|
|
95
|
-
}
|
|
96
|
-
}, {
|
|
97
|
-
key: "ended",
|
|
98
|
-
get: function get() {
|
|
99
|
-
return this.$currentTime === this.$duration;
|
|
100
|
-
}
|
|
101
|
-
}, {
|
|
102
|
-
key: "paused",
|
|
103
|
-
get: function get() {
|
|
104
|
-
return !this.stopInterval;
|
|
105
|
-
}
|
|
106
|
-
}, {
|
|
107
|
-
key: "addEventListener",
|
|
108
|
-
value: function addEventListener(evtName, callback) {
|
|
109
|
-
var useCapture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
110
|
-
this.on(evtName, callback);
|
|
111
|
-
}
|
|
112
|
-
}, {
|
|
113
|
-
key: "removeEventListener",
|
|
114
|
-
value: function removeEventListener(evtName, callback) {
|
|
115
|
-
var useCapture = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
116
|
-
this.off(evtName, callback);
|
|
117
|
-
}
|
|
118
|
-
}]);
|
|
119
|
-
}(Subscribe);
|
|
120
|
-
export default AudioLike;
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 预载器
|
|
3
|
-
*/
|
|
4
|
-
export var Preloader = {
|
|
5
|
-
blob: function blob(url) {
|
|
6
|
-
var noop = function noop() {
|
|
7
|
-
return null;
|
|
8
|
-
};
|
|
9
|
-
return new Promise(function (resolve, reject) {
|
|
10
|
-
var xhr = new XMLHttpRequest();
|
|
11
|
-
var clear = function clear() {
|
|
12
|
-
xhr.ontimeout = noop;
|
|
13
|
-
xhr.onreadystatechange = noop;
|
|
14
|
-
xhr.onprogress = noop;
|
|
15
|
-
xhr.onabort = noop;
|
|
16
|
-
};
|
|
17
|
-
xhr.ontimeout = function () {
|
|
18
|
-
reject(new Error('timeout'));
|
|
19
|
-
clear();
|
|
20
|
-
};
|
|
21
|
-
xhr.onreadystatechange = function () {
|
|
22
|
-
if (xhr.readyState !== 4) return;
|
|
23
|
-
if (xhr.status === 0 && !xhr.response) return;
|
|
24
|
-
if (xhr.status === 200 || xhr.status === 0) {
|
|
25
|
-
resolve(xhr.response);
|
|
26
|
-
clear();
|
|
27
|
-
} else {
|
|
28
|
-
reject(new Error('status:' + xhr.status));
|
|
29
|
-
clear();
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
xhr.open('GET', url, true);
|
|
33
|
-
xhr.responseType = 'blob';
|
|
34
|
-
xhr.send(null);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
};
|