@realsee/vreo 2.6.5 → 3.0.0-webgpu.10

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