@realsee/vreo 2.3.8 → 2.3.9-alpha.1

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 (48) hide show
  1. package/lib/PlayController/createHTMLAudioElement.js +10 -2
  2. package/lib/PlayController/index.js +66 -6
  3. package/lib/Player/App.js +26 -0
  4. package/lib/Player/Controller.js +77 -21
  5. package/lib/Player/custom/SpatialScenePanel/index.js +63 -42
  6. package/lib/Player/hooks.js +10 -0
  7. package/lib/Player/index.js +79 -19
  8. package/lib/Player/modules/Drawer/index.js +17 -0
  9. package/lib/Player/modules/PopUp/index.js +10 -0
  10. package/lib/Player/modules/ResizeObserver/index.js +8 -0
  11. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +96 -8
  12. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +17 -3
  13. package/lib/Player/modules/VideoAgent/index.js +17 -0
  14. package/lib/Player/modules/Wave/index.js +32 -11
  15. package/lib/Player/modules/keyframes/BgMusic/index.js +24 -4
  16. package/lib/Player/modules/keyframes/CameraMovement/index.js +26 -0
  17. package/lib/Player/modules/keyframes/InfoPanel/index.js +38 -8
  18. package/lib/Player/modules/keyframes/ModelVideo/index.js +28 -0
  19. package/lib/Player/modules/keyframes/PanoEffect/index.js +38 -15
  20. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +7 -0
  21. package/lib/Player/modules/keyframes/PanoTag/index.js +22 -4
  22. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +42 -22
  23. package/lib/Player/modules/keyframes/Prompter/index.js +27 -10
  24. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +25 -18
  25. package/lib/Player/modules/keyframes/VideoEffect/index.js +42 -10
  26. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +2 -0
  27. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +1 -0
  28. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +1 -0
  29. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +60 -19
  30. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +5 -2
  31. package/lib/fivePlugins/CameraMovementPlugin/index.js +109 -50
  32. package/lib/fivePlugins/CameraMovementPlugin/typings.js +4 -0
  33. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +54 -8
  34. package/lib/index.js +1 -0
  35. package/lib/react/index.js +30 -7
  36. package/lib/shared-utils/Audio.js +49 -8
  37. package/lib/shared-utils/AudioLike.js +28 -3
  38. package/lib/shared-utils/Preloader.js +7 -0
  39. package/lib/shared-utils/addResizeListener.js +5 -0
  40. package/lib/shared-utils/animationFrame/BetterTween.js +28 -0
  41. package/lib/shared-utils/animationFrame/index.js +10 -2
  42. package/lib/shared-utils/animationFrame/tween.js +11 -2
  43. package/lib/shared-utils/createTransMatrix.js +8 -0
  44. package/lib/shared-utils/getFileExpandedName.js +1 -0
  45. package/lib/shared-utils/getMediaInfo.js +9 -0
  46. package/lib/shared-utils/setElementDataset.js +2 -0
  47. package/lib/typings/VreoUnit.js +15 -0
  48. package/package.json +1 -1
@@ -1,39 +1,64 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.VideoAgentMesh = void 0;
11
+
9
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
10
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
11
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
+
12
18
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
13
20
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
+
14
22
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
+
15
24
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
+
16
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
+
17
28
  var THREE = _interopRequireWildcard(require("three"));
29
+
18
30
  var _Preloader = require("../../../shared-utils/Preloader");
31
+
19
32
  var _mobx = require("mobx");
33
+
20
34
  var _AudioLike = _interopRequireDefault(require("../../../shared-utils/AudioLike"));
35
+
21
36
  var _getMediaInfo = require("../../../shared-utils/getMediaInfo");
37
+
22
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
+
23
40
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
24
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
+
25
44
  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; } }
45
+
26
46
  var vertexShader = "\nvarying vec2 vUv;\nvarying vec2 vColorUv;\nvarying vec2 vMaskUv;\nvoid main(){\n vUv = uv;\n vColorUv = vec2(uv.x / 2.0, uv.y);\n vMaskUv = vec2(0.5 + uv.x / 2.0, uv.y);\n gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);\n}\n";
47
+
27
48
  var fragmentShaderTpl = function fragmentShaderTpl() {
28
49
  return "\nuniform int enable;\nuniform sampler2D map;\nvarying vec2 vUv;\nvarying vec2 vColorUv;\nvarying vec2 vMaskUv;\n\nvec3 hsv2rgb(vec3 c) {\n const vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\n return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\n}\n\nvec3 rgb2hsv(vec3 c) {\n const vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\n vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));\n vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));\n\n float d = q.x - min(q.w, q.y);\n return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + 0.001)), d / (q.x + 0.001), q.x);\n}\n\nvoid main(void) {\n vec3 color = texture2D(map, vUv).xyz;\n float amask = 1.0;\n\n float ref = color.r;\n if (ref < color.b) ref = color.b;\n amask = color.g - ref + 0.1;\n amask = smoothstep(0.1, 0.3, amask);\n amask = 1.0 - amask;\n\n vec3 target = rgb2hsv(vec3(0.0 / 255.0, 255.0 / 255.0, 0.0 / 255.0));\n vec3 hsv = rgb2hsv(color);\n float distance = abs(hsv.x - target.x);\n if (distance < 0.15) {\n hsv.y = 0.0;\n }\n color = hsv2rgb(hsv);\n\n gl_FragColor = vec4(color.rgb, amask * float(enable));\n}\n";
29
50
  };
51
+
30
52
  var cacheInstance = {};
53
+
31
54
  /**
32
55
  * 视频经纪人MESH
33
56
  */
34
57
  var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
35
58
  (0, _inherits2["default"])(VideoAgentMesh, _THREE$Mesh);
59
+
36
60
  var _super = _createSuper(VideoAgentMesh);
61
+
37
62
  /**
38
63
  *
39
64
  * @param width
@@ -44,11 +69,14 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
44
69
  */
45
70
  function VideoAgentMesh(width, height, widthSegments, heightSegments) {
46
71
  var _this$options$videoIn, _this$options$videoIn2;
72
+
47
73
  var _this;
74
+
48
75
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
49
76
  preload: true
50
77
  };
51
78
  (0, _classCallCheck2["default"])(this, VideoAgentMesh);
79
+
52
80
  if (!options.videoInstance) {
53
81
  if (cacheInstance.videoInstance) {
54
82
  options.videoInstance = cacheInstance.videoInstance;
@@ -64,6 +92,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
64
92
  videoInstance.controls = false;
65
93
  }
66
94
  }
95
+
67
96
  var geometry = new THREE.PlaneGeometry(width, height, widthSegments, heightSegments);
68
97
  var videoTexture = new THREE.VideoTexture(options.videoInstance);
69
98
  var material = new THREE.ShaderMaterial({
@@ -83,13 +112,14 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
83
112
  _this.options = options;
84
113
  _this.freeze = false;
85
114
  _this.paused = true;
115
+
86
116
  if (!options.audioInstance) {
87
117
  if (cacheInstance.audioInstance) {
88
118
  _this.audioInstance = cacheInstance.audioInstance;
89
119
  } else {
90
120
  var audioInstance = document.createElement('audio');
91
- audioInstance.crossOrigin = '';
92
- // videoInstance.muted = true
121
+ audioInstance.crossOrigin = ''; // videoInstance.muted = true
122
+
93
123
  audioInstance.muted = false;
94
124
  audioInstance.autoplay = false;
95
125
  audioInstance.style.display = 'none';
@@ -100,47 +130,66 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
100
130
  } else {
101
131
  _this.audioInstance = options.audioInstance;
102
132
  }
133
+
103
134
  _this.audioLikeInstance = new _AudioLike["default"]();
104
135
  (0, _mobx.makeObservable)((0, _assertThisInitialized2["default"])(_this), {
105
136
  paused: _mobx.observable
106
137
  });
138
+
107
139
  var updatePaused = function updatePaused(paused) {
108
140
  return (0, _mobx.runInAction)(function () {
109
141
  return _this.paused = paused;
110
142
  });
111
143
  };
144
+
112
145
  var onPause = function onPause() {
113
146
  return updatePaused(true);
114
147
  };
148
+
115
149
  var onPlay = function onPlay() {
116
150
  return updatePaused(false);
117
151
  };
152
+
118
153
  _this.audioInstance.addEventListener('pause', onPause);
154
+
119
155
  _this.audioInstance.addEventListener('play', onPlay);
156
+
120
157
  (_this$options$videoIn = _this.options.videoInstance) === null || _this$options$videoIn === void 0 ? void 0 : _this$options$videoIn.addEventListener('pause', onPause);
121
158
  (_this$options$videoIn2 = _this.options.videoInstance) === null || _this$options$videoIn2 === void 0 ? void 0 : _this$options$videoIn2.addEventListener('play', onPlay);
159
+
122
160
  _this.audioLikeInstance.addEventListener('pause', onPause);
161
+
123
162
  _this.audioLikeInstance.addEventListener('play', onPlay);
163
+
124
164
  _this.$removeEventListener = function () {
125
165
  var _this$options$videoIn3, _this$options$videoIn4;
166
+
126
167
  _this.audioInstance.removeEventListener('pause', onPause);
168
+
127
169
  _this.audioInstance.removeEventListener('play', onPlay);
170
+
128
171
  (_this$options$videoIn3 = _this.options.videoInstance) === null || _this$options$videoIn3 === void 0 ? void 0 : _this$options$videoIn3.removeEventListener('pause', onPause);
129
172
  (_this$options$videoIn4 = _this.options.videoInstance) === null || _this$options$videoIn4 === void 0 ? void 0 : _this$options$videoIn4.removeEventListener('play', onPlay);
173
+
130
174
  _this.audioLikeInstance.removeEventListener('pause', onPause);
175
+
131
176
  _this.audioLikeInstance.removeEventListener('play', onPlay);
132
177
  };
178
+
133
179
  return _this;
134
180
  }
181
+
135
182
  (0, _createClass2["default"])(VideoAgentMesh, [{
136
183
  key: "mediaInstance",
137
184
  get: function get() {
138
185
  if (!this.videoUrl) {
139
186
  return this.audioLikeInstance;
140
187
  }
188
+
141
189
  if ((0, _getMediaInfo.getMediaType)(this.videoUrl) === 'audio') {
142
190
  return this.audioInstance;
143
191
  }
192
+
144
193
  var uniforms = this.material.uniforms;
145
194
  var videoInstance = uniforms.map.value.image;
146
195
  return videoInstance;
@@ -150,6 +199,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
150
199
  value: function () {
151
200
  var _update = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(videoUrl) {
152
201
  var _this2 = this;
202
+
153
203
  var uniforms, onStart;
154
204
  return _regenerator["default"].wrap(function _callee$(_context) {
155
205
  while (1) {
@@ -159,11 +209,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
159
209
  _context.next = 2;
160
210
  break;
161
211
  }
212
+
162
213
  return _context.abrupt("return");
163
- case 2:
164
- this.videoUrl = videoUrl;
165
214
 
166
- // // 兼容非视频场景
215
+ case 2:
216
+ this.videoUrl = videoUrl; // // 兼容非视频场景
167
217
  // if (this.mediaInstance instanceof HTMLAudioElement) {
168
218
  // this.mediaInstance.style.display = 'none'
169
219
  // } else if (this.mediaInstance instanceof HTMLVideoElement) {
@@ -173,37 +223,48 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
173
223
  this.freeze = true;
174
224
  _context.next = 6;
175
225
  return this.mediaInstance.pause();
226
+
176
227
  case 6:
177
228
  uniforms = this.material.uniforms;
178
229
  this.mediaInstance.muted = true;
230
+
179
231
  if (!(this.options.preload || this.options.preload === undefined || (0, _getMediaInfo.getMediaType)(this.videoUrl) === 'video')) {
180
232
  _context.next = 18;
181
233
  break;
182
234
  }
235
+
183
236
  _context.t1 = URL;
184
237
  _context.next = 12;
185
238
  return _Preloader.Preloader.blob(this.videoUrl);
239
+
186
240
  case 12:
187
241
  _context.t2 = _context.sent;
188
242
  _context.next = 15;
189
243
  return _context.t1.createObjectURL.call(_context.t1, _context.t2);
244
+
190
245
  case 15:
191
246
  _context.t0 = _context.sent;
192
247
  _context.next = 19;
193
248
  break;
249
+
194
250
  case 18:
195
251
  _context.t0 = this.videoUrl;
252
+
196
253
  case 19:
197
254
  this.mediaInstance.src = _context.t0;
198
255
  this.mediaInstance.setAttribute('data-src', this.videoUrl);
256
+
199
257
  onStart = function onStart() {
200
258
  if (_this2.mediaInstance.currentTime === 0) return;
201
259
  _this2.freeze = false;
202
260
  _this2.mediaInstance.muted = false;
203
261
  uniforms.enable.value = (0, _getMediaInfo.getMediaType)(_this2.videoUrl) ? 1 : 0;
262
+
204
263
  _this2.mediaInstance.removeEventListener('timeupdate', onStart, false);
205
264
  };
265
+
206
266
  this.mediaInstance.addEventListener('timeupdate', onStart, false);
267
+
207
268
  case 23:
208
269
  case "end":
209
270
  return _context.stop();
@@ -211,9 +272,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
211
272
  }
212
273
  }, _callee, this);
213
274
  }));
275
+
214
276
  function update(_x) {
215
277
  return _update.apply(this, arguments);
216
278
  }
279
+
217
280
  return update;
218
281
  }()
219
282
  }, {
@@ -221,10 +284,11 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
221
284
  value: function () {
222
285
  var _play = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
223
286
  var _this3 = this;
287
+
224
288
  var videoUrl,
225
- currentTime,
226
- duration,
227
- _args3 = arguments;
289
+ currentTime,
290
+ duration,
291
+ _args3 = arguments;
228
292
  return _regenerator["default"].wrap(function _callee3$(_context3) {
229
293
  while (1) {
230
294
  switch (_context3.prev = _context3.next) {
@@ -233,48 +297,62 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
233
297
  currentTime = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : 0;
234
298
  duration = _args3.length > 2 ? _args3[2] : undefined;
235
299
  videoUrl = videoUrl || '';
300
+
236
301
  if (!(duration && !videoUrl)) {
237
302
  _context3.next = 10;
238
303
  break;
239
304
  }
305
+
240
306
  if (this.currentTime) {
241
307
  this.mediaInstance.currentTime = currentTime;
242
308
  }
309
+
243
310
  this.mediaInstance.duration = duration;
244
311
  this.videoUrl = '';
245
312
  this.mediaInstance.play();
246
313
  return _context3.abrupt("return", true);
314
+
247
315
  case 10:
248
316
  if (videoUrl) {
249
317
  _context3.next = 18;
250
318
  break;
251
319
  }
320
+
252
321
  if (!this.videoUrl) {
253
322
  _context3.next = 16;
254
323
  break;
255
324
  }
325
+
256
326
  _context3.next = 14;
257
327
  return this.mediaInstance.play();
328
+
258
329
  case 14:
259
330
  _context3.next = 17;
260
331
  break;
332
+
261
333
  case 16:
262
334
  console.warn('警告:视频资源未初始化。');
335
+
263
336
  case 17:
264
337
  return _context3.abrupt("return", true);
338
+
265
339
  case 18:
266
340
  if (!(videoUrl === this.videoUrl)) {
267
341
  _context3.next = 23;
268
342
  break;
269
343
  }
344
+
270
345
  this.mediaInstance.currentTime = currentTime;
271
346
  _context3.next = 22;
272
347
  return this.mediaInstance.play();
348
+
273
349
  case 22:
274
350
  return _context3.abrupt("return", true);
351
+
275
352
  case 23:
276
353
  _context3.next = 25;
277
354
  return this.update(videoUrl);
355
+
278
356
  case 25:
279
357
  this.mediaInstance.pause();
280
358
  _context3.next = 28;
@@ -287,8 +365,10 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
287
365
  _this3.mediaInstance.currentTime = currentTime;
288
366
  _context2.next = 3;
289
367
  return _this3.mediaInstance.play();
368
+
290
369
  case 3:
291
370
  resolve(true);
371
+
292
372
  case 4:
293
373
  case "end":
294
374
  return _context2.stop();
@@ -297,8 +377,10 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
297
377
  }, _callee2);
298
378
  })), 20);
299
379
  });
380
+
300
381
  case 28:
301
382
  return _context3.abrupt("return", _context3.sent);
383
+
302
384
  case 29:
303
385
  case "end":
304
386
  return _context3.stop();
@@ -306,14 +388,17 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
306
388
  }
307
389
  }, _callee3, this);
308
390
  }));
391
+
309
392
  function play() {
310
393
  return _play.apply(this, arguments);
311
394
  }
395
+
312
396
  return play;
313
397
  }()
314
398
  /**
315
399
  * 秒转成毫秒,保障精准度
316
400
  */
401
+
317
402
  }, {
318
403
  key: "currentTime",
319
404
  get: function get() {
@@ -324,10 +409,12 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
324
409
  value: function dispose() {
325
410
  // 销毁事件监听
326
411
  this.$removeEventListener();
412
+
327
413
  if (cacheInstance.audioInstance) {
328
414
  document.body.removeChild(cacheInstance.audioInstance);
329
415
  cacheInstance.audioInstance = undefined;
330
416
  }
417
+
331
418
  if (cacheInstance.videoInstance) {
332
419
  document.body.removeChild(cacheInstance.videoInstance);
333
420
  cacheInstance.videoInstance = undefined;
@@ -336,4 +423,5 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
336
423
  }]);
337
424
  return VideoAgentMesh;
338
425
  }(THREE.Mesh);
426
+
339
427
  exports.VideoAgentMesh = VideoAgentMesh;
@@ -1,21 +1,33 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.VideoAgentScene = void 0;
11
+
9
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
11
16
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+
12
18
  var THREE = _interopRequireWildcard(require("three"));
19
+
13
20
  var _addResizeListener = require("../../../shared-utils/addResizeListener");
21
+
14
22
  var _VideoAgentMesh = require("./VideoAgentMesh");
23
+
15
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
16
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
17
28
  var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoAgentScene(container, options) {
18
29
  var _this = this;
30
+
19
31
  (0, _classCallCheck2["default"])(this, VideoAgentScene);
20
32
  (0, _defineProperty2["default"])(this, "scene", new THREE.Scene());
21
33
  (0, _defineProperty2["default"])(this, "camera", new THREE.OrthographicCamera(-240, 240, 135, -135));
@@ -28,18 +40,19 @@ var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoA
28
40
  if (!(_this.videoAgentMesh.paused || _this.videoAgentMesh.freeze) && _this.videoAgentMesh.currentTime > 1000) {
29
41
  _this.renderer.render(_this.scene, _this.camera);
30
42
  }
43
+
31
44
  requestAnimationFrame(_this.run);
32
45
  });
33
46
  (0, _defineProperty2["default"])(this, "dispose", function () {
34
47
  var _this$videoAgentMesh;
48
+
35
49
  (_this$videoAgentMesh = _this.videoAgentMesh) === null || _this$videoAgentMesh === void 0 ? void 0 : _this$videoAgentMesh.dispose();
50
+
36
51
  _this.disposers.forEach(function (disposer) {
37
52
  return disposer === null || disposer === void 0 ? void 0 : disposer();
38
53
  });
39
54
  });
40
- this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options);
41
-
42
- // const needRender = getMediaType(this.videoAgentMesh.videoUrl) === 'video'
55
+ this.videoAgentMesh = new _VideoAgentMesh.VideoAgentMesh(480, 270, 1, 1, options); // const needRender = getMediaType(this.videoAgentMesh.videoUrl) === 'video'
43
56
 
44
57
  if (container) {
45
58
  this.camera.position.set(0, 0, 10);
@@ -48,6 +61,7 @@ var VideoAgentScene = /*#__PURE__*/(0, _createClass2["default"])(function VideoA
48
61
  domElement.classList.add('VideoAgent-canvas');
49
62
  var dispose = (0, _addResizeListener.addResizeListener)(container, function (width, height) {
50
63
  _this.renderer.setSize(width * window.devicePixelRatio, height * window.devicePixelRatio);
64
+
51
65
  domElement.style.width = "".concat(width, "px");
52
66
  domElement.style.height = "".concat(height, "px");
53
67
  });
@@ -1,40 +1,55 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.VideoAgent = VideoAgent;
11
+
9
12
  var React = _interopRequireWildcard(require("react"));
13
+
10
14
  var _hooks = require("../../hooks");
15
+
11
16
  var _VideoAgentScene = require("./VideoAgentScene");
17
+
12
18
  var _classnames = _interopRequireDefault(require("classnames"));
19
+
13
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
14
22
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
15
24
  function VideoAgent(props) {
16
25
  var _controller$avatar2;
26
+
17
27
  var ref = React.useRef(null);
18
28
  var controller = (0, _hooks.useController)();
19
29
  var showAvatar = React.useMemo(function () {
20
30
  var _controller$avatar;
31
+
21
32
  return ((_controller$avatar = controller.avatar) === null || _controller$avatar === void 0 ? void 0 : _controller$avatar.url) && controller.avatar.force === true;
22
33
  }, [controller.avatar]);
23
34
  var showVideoAgent = React.useMemo(function () {
24
35
  var _controller$videoAgen;
36
+
25
37
  if (showAvatar) return false;
26
38
  return ((_controller$videoAgen = controller.videoAgentScene) === null || _controller$videoAgen === void 0 ? void 0 : _controller$videoAgen.videoAgentMesh.mediaInstance) instanceof HTMLVideoElement;
27
39
  }, [controller.videoAgentScene, showAvatar]);
28
40
  React.useEffect(function () {
29
41
  if (!ref.current) throw new Error('React 渲染异常,请稍后重试 ...');
42
+
30
43
  if (controller.videoAgentScene) {
31
44
  console.warn('VideoAgentScene" 重复初始化,已被过滤');
32
45
  return;
33
46
  }
47
+
34
48
  var videoAgentScene = new _VideoAgentScene.VideoAgentScene(ref.current, props.options);
35
49
  controller.videoAgentScene = videoAgentScene;
36
50
  return function () {
37
51
  var _controller$videoAgen2;
52
+
38
53
  controller.dispose();
39
54
  (_controller$videoAgen2 = controller.videoAgentScene) === null || _controller$videoAgen2 === void 0 ? void 0 : _controller$videoAgen2.dispose();
40
55
  };
@@ -51,6 +66,7 @@ function VideoAgent(props) {
51
66
  src: (_controller$avatar2 = controller.avatar) === null || _controller$avatar2 === void 0 ? void 0 : _controller$avatar2.url,
52
67
  onClick: function onClick() {
53
68
  var _props$onClick;
69
+
54
70
  return (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props);
55
71
  }
56
72
  }))), /*#__PURE__*/React.createElement("div", {
@@ -68,6 +84,7 @@ function VideoAgent(props) {
68
84
  className: "VideoAgent-play",
69
85
  onClick: function onClick() {
70
86
  var _props$onClick2;
87
+
71
88
  return (_props$onClick2 = props.onClick) === null || _props$onClick2 === void 0 ? void 0 : _props$onClick2.call(props);
72
89
  }
73
90
  }))))));
@@ -1,15 +1,22 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports.Wave = Wave;
11
+
9
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
10
14
  var _react = _interopRequireWildcard(require("react"));
15
+
11
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
12
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
13
20
  var defaultPrefix = 'https://vr-public.realsee-cdn.cn/release/static/image/release/';
14
21
  var WAVES = {
15
22
  single: {
@@ -59,16 +66,21 @@ var isSafari = /safari/i.test(userAgent) && !/chrome/i.test(userAgent) && /versi
59
66
  var isMicroMessenger = /microMessenger/i.test(userAgent);
60
67
  var canPlayHevc = isAppleDevice || isSafari;
61
68
  var canPlayVp9 = typeof MediaSource !== 'undefined' && MediaSource.isTypeSupported("video/webm; codecs=vp9");
69
+
62
70
  function Wave(props) {
63
71
  var wave = _react["default"].useMemo(function () {
64
72
  var _props$appearance;
73
+
65
74
  var appearance = (_props$appearance = props === null || props === void 0 ? void 0 : props.appearance) !== null && _props$appearance !== void 0 ? _props$appearance : 'solid';
66
75
  return WAVES[appearance];
67
76
  }, [props === null || props === void 0 ? void 0 : props.appearance]);
77
+
68
78
  var heightWidthRatio = _react["default"].useMemo(function () {
69
79
  return wave.height / wave.width;
70
80
  }, [wave]);
81
+
71
82
  var content = null;
83
+
72
84
  if (isMicroMessenger) {
73
85
  content = /*#__PURE__*/_react["default"].createElement(KeyframeWaveContent, {
74
86
  wave: wave,
@@ -92,6 +104,7 @@ function Wave(props) {
92
104
  prefix: props === null || props === void 0 ? void 0 : props.staticPrefix
93
105
  });
94
106
  }
107
+
95
108
  return /*#__PURE__*/_react["default"].createElement("div", {
96
109
  className: "vreo-wave",
97
110
  onClick: props === null || props === void 0 ? void 0 : props.onClick
@@ -111,20 +124,24 @@ function Wave(props) {
111
124
  }
112
125
  }, content)));
113
126
  }
127
+
114
128
  var VideoWaveContent = function VideoWaveContent(_ref) {
115
129
  var wave = _ref.wave,
116
- format = _ref.format,
117
- _ref$prefix = _ref.prefix,
118
- prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;
130
+ format = _ref.format,
131
+ _ref$prefix = _ref.prefix,
132
+ prefix = _ref$prefix === void 0 ? defaultPrefix : _ref$prefix;
119
133
  var videoRef = (0, _react.useRef)(null);
134
+
120
135
  var _useState = (0, _react.useState)(false),
121
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
122
- canPlay = _useState2[0],
123
- setCanPlay = _useState2[1];
136
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
137
+ canPlay = _useState2[0],
138
+ setCanPlay = _useState2[1];
139
+
124
140
  var _useState3 = (0, _react.useState)(false),
125
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
126
- errored = _useState4[0],
127
- setErrored = _useState4[1];
141
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
142
+ errored = _useState4[0],
143
+ setErrored = _useState4[1];
144
+
128
145
  var source = prefix + wave[format];
129
146
  (0, _react.useEffect)(function () {
130
147
  setCanPlay(false);
@@ -133,17 +150,20 @@ var VideoWaveContent = function VideoWaveContent(_ref) {
133
150
  if (videoRef.current) {
134
151
  videoRef.current.play();
135
152
  }
153
+
136
154
  setCanPlay(true);
137
155
  }, []);
138
156
  var errorHandler = (0, _react.useCallback)(function () {
139
157
  setErrored(true);
140
158
  }, []);
159
+
141
160
  if (errored) {
142
161
  return /*#__PURE__*/_react["default"].createElement(KeyframeWaveContent, {
143
162
  wave: wave,
144
163
  prefix: prefix
145
164
  });
146
165
  }
166
+
147
167
  return /*#__PURE__*/_react["default"].createElement("video", {
148
168
  style: {
149
169
  opacity: canPlay ? 1 : 0
@@ -161,10 +181,11 @@ var VideoWaveContent = function VideoWaveContent(_ref) {
161
181
  src: source
162
182
  });
163
183
  };
184
+
164
185
  var KeyframeWaveContent = function KeyframeWaveContent(_ref2) {
165
186
  var wave = _ref2.wave,
166
- _ref2$prefix = _ref2.prefix,
167
- prefix = _ref2$prefix === void 0 ? defaultPrefix : _ref2$prefix;
187
+ _ref2$prefix = _ref2.prefix,
188
+ prefix = _ref2$prefix === void 0 ? defaultPrefix : _ref2$prefix;
168
189
  var source = prefix + wave.png;
169
190
  return /*#__PURE__*/_react["default"].createElement("div", {
170
191
  style: {