@realsee/vreo 2.6.4 → 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.
Files changed (173) hide show
  1. package/README.md +6 -6
  2. package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
  3. package/lib/PlayController/createHTMLAudioElement.d.ts.map +1 -0
  4. package/lib/PlayController/index.d.ts +14 -24
  5. package/lib/PlayController/index.d.ts.map +1 -0
  6. package/lib/PlayController/index.js +74 -220
  7. package/lib/PlayController/index.js.map +1 -0
  8. package/lib/Player/App.d.ts +2 -2
  9. package/lib/Player/App.d.ts.map +1 -0
  10. package/lib/Player/Controller.d.ts +11 -6
  11. package/lib/Player/Controller.d.ts.map +1 -0
  12. package/lib/Player/PlaybackLifecycle.d.ts +1 -0
  13. package/lib/Player/PlaybackLifecycle.d.ts.map +1 -0
  14. package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
  15. package/lib/Player/custom/SpatialScenePanel/index.d.ts.map +1 -0
  16. package/lib/Player/hooks.d.ts +3 -2
  17. package/lib/Player/hooks.d.ts.map +1 -0
  18. package/lib/Player/index.d.ts +3 -2
  19. package/lib/Player/index.d.ts.map +1 -0
  20. package/lib/Player/index.js +1770 -437
  21. package/lib/Player/index.js.map +1 -0
  22. package/lib/Player/modules/Drawer/index.d.ts +2 -2
  23. package/lib/Player/modules/Drawer/index.d.ts.map +1 -0
  24. package/lib/Player/modules/PopUp/index.d.ts +2 -2
  25. package/lib/Player/modules/PopUp/index.d.ts.map +1 -0
  26. package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
  27. package/lib/Player/modules/ResizeObserver/index.d.ts.map +1 -0
  28. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +5 -2
  29. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts.map +1 -0
  30. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +8 -5
  31. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts.map +1 -0
  32. package/lib/Player/modules/VideoAgent/index.d.ts +11 -2
  33. package/lib/Player/modules/VideoAgent/index.d.ts.map +1 -0
  34. package/lib/Player/modules/Wave/index.d.ts +2 -2
  35. package/lib/Player/modules/Wave/index.d.ts.map +1 -0
  36. package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
  37. package/lib/Player/modules/keyframes/BgMusic/index.d.ts.map +1 -0
  38. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
  39. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts.map +1 -0
  40. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
  41. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts.map +1 -0
  42. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
  43. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts.map +1 -0
  44. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
  45. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts.map +1 -0
  46. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts +3 -2
  47. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts.map +1 -0
  48. package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -0
  49. package/lib/Player/modules/keyframes/PanoTag/index.d.ts.map +1 -0
  50. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
  51. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts.map +1 -0
  52. package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
  53. package/lib/Player/modules/keyframes/Prompter/index.d.ts.map +1 -0
  54. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
  55. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts.map +1 -0
  56. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
  57. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts.map +1 -0
  58. package/lib/Player/playback-types.d.ts +1 -0
  59. package/lib/Player/playback-types.d.ts.map +1 -0
  60. package/lib/Player/typings.d.ts +2 -1
  61. package/lib/Player/typings.d.ts.map +1 -0
  62. package/lib/chunks/index-BgPSzRSs.js +93 -0
  63. package/lib/chunks/index-BgPSzRSs.js.map +1 -0
  64. package/lib/chunks/index-CunyJn6H.js +51 -0
  65. package/lib/chunks/index-CunyJn6H.js.map +1 -0
  66. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts +2 -1
  67. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts.map +1 -0
  68. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts +5 -6
  69. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts.map +1 -0
  70. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts +1 -0
  71. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts.map +1 -0
  72. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +5 -22
  73. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts.map +1 -0
  74. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts +2 -1
  75. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts.map +1 -0
  76. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts +2 -1
  77. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts.map +1 -0
  78. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +2 -1
  79. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts.map +1 -0
  80. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts +2 -1
  81. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts.map +1 -0
  82. package/lib/index.d.ts +3 -0
  83. package/lib/index.d.ts.map +1 -0
  84. package/lib/index.js +12 -1
  85. package/lib/index.js.map +1 -0
  86. package/lib/plugins/CSS3DRenderPlugin.js +115 -0
  87. package/lib/plugins/CSS3DRenderPlugin.js.map +1 -0
  88. package/lib/plugins/CameraMovementPlugin.js +6 -0
  89. package/lib/plugins/CameraMovementPlugin.js.map +1 -0
  90. package/lib/plugins/ModelTVVideoPlugin.js +162 -0
  91. package/lib/plugins/ModelTVVideoPlugin.js.map +1 -0
  92. package/lib/react/index.d.ts +5 -4
  93. package/lib/react/index.d.ts.map +1 -0
  94. package/lib/react/index.js +39 -226
  95. package/lib/react/index.js.map +1 -0
  96. package/lib/shared-utils/Audio.d.ts +3 -1
  97. package/lib/shared-utils/Audio.d.ts.map +1 -0
  98. package/lib/shared-utils/AudioLike.d.ts +2 -1
  99. package/lib/shared-utils/AudioLike.d.ts.map +1 -0
  100. package/lib/shared-utils/Preloader.d.ts +1 -0
  101. package/lib/shared-utils/Preloader.d.ts.map +1 -0
  102. package/lib/shared-utils/addResizeListener.d.ts +2 -1
  103. package/lib/shared-utils/addResizeListener.d.ts.map +1 -0
  104. package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -0
  105. package/lib/shared-utils/animationFrame/BetterTween.d.ts.map +1 -0
  106. package/lib/shared-utils/animationFrame/index.d.ts +5 -14
  107. package/lib/shared-utils/animationFrame/index.d.ts.map +1 -0
  108. package/lib/shared-utils/animationFrame/tween.d.ts +1 -0
  109. package/lib/shared-utils/animationFrame/tween.d.ts.map +1 -0
  110. package/lib/shared-utils/createTransMatrix.d.ts +3 -1
  111. package/lib/shared-utils/createTransMatrix.d.ts.map +1 -0
  112. package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
  113. package/lib/shared-utils/getFileExpandedName.d.ts.map +1 -0
  114. package/lib/shared-utils/getMediaInfo.d.ts +1 -0
  115. package/lib/shared-utils/getMediaInfo.d.ts.map +1 -0
  116. package/lib/shared-utils/setElementDataset.d.ts +1 -0
  117. package/lib/shared-utils/setElementDataset.d.ts.map +1 -0
  118. package/lib/timeline/index.d.ts +18 -0
  119. package/lib/timeline/index.d.ts.map +1 -0
  120. package/lib/types/index.js +10 -0
  121. package/lib/types/index.js.map +1 -0
  122. package/lib/typings/VreoUnit.d.ts +2 -1
  123. package/lib/typings/VreoUnit.d.ts.map +1 -0
  124. package/lib/typings/index.d.ts +1 -0
  125. package/lib/typings/index.d.ts.map +1 -0
  126. package/package.json +51 -71
  127. package/lib/PlayController/createHTMLAudioElement.js +0 -34
  128. package/lib/Player/App.js +0 -52
  129. package/lib/Player/Controller.js +0 -536
  130. package/lib/Player/PlaybackLifecycle.js +0 -118
  131. package/lib/Player/custom/SpatialScenePanel/index.js +0 -240
  132. package/lib/Player/hooks.js +0 -22
  133. package/lib/Player/modules/Drawer/index.js +0 -40
  134. package/lib/Player/modules/PopUp/index.js +0 -23
  135. package/lib/Player/modules/ResizeObserver/index.js +0 -22
  136. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +0 -456
  137. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +0 -53
  138. package/lib/Player/modules/VideoAgent/index.js +0 -72
  139. package/lib/Player/modules/Wave/index.js +0 -171
  140. package/lib/Player/modules/keyframes/BgMusic/index.js +0 -65
  141. package/lib/Player/modules/keyframes/CameraMovement/index.js +0 -75
  142. package/lib/Player/modules/keyframes/InfoPanel/index.js +0 -170
  143. package/lib/Player/modules/keyframes/ModelVideo/index.js +0 -128
  144. package/lib/Player/modules/keyframes/PanoEffect/index.js +0 -99
  145. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -30
  146. package/lib/Player/modules/keyframes/PanoTag/index.js +0 -110
  147. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -122
  148. package/lib/Player/modules/keyframes/Prompter/index.js +0 -56
  149. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +0 -98
  150. package/lib/Player/modules/keyframes/VideoEffect/index.js +0 -154
  151. package/lib/Player/playback-types.js +0 -1
  152. package/lib/Player/typings.js +0 -1
  153. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -4
  154. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -25
  155. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -4
  156. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +0 -226
  157. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +0 -8
  158. package/lib/fivePlugins/CameraMovementPlugin/index.js +0 -245
  159. package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -15
  160. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +0 -349
  161. package/lib/shared-utils/Audio.js +0 -151
  162. package/lib/shared-utils/AudioLike.js +0 -123
  163. package/lib/shared-utils/Preloader.js +0 -37
  164. package/lib/shared-utils/addResizeListener.js +0 -39
  165. package/lib/shared-utils/animationFrame/BetterTween.js +0 -58
  166. package/lib/shared-utils/animationFrame/index.js +0 -52
  167. package/lib/shared-utils/animationFrame/tween.js +0 -58
  168. package/lib/shared-utils/createTransMatrix.js +0 -12
  169. package/lib/shared-utils/getFileExpandedName.js +0 -6
  170. package/lib/shared-utils/getMediaInfo.js +0 -55
  171. package/lib/shared-utils/setElementDataset.js +0 -16
  172. package/lib/typings/VreoUnit.js +0 -64
  173. 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
- };