@realsee/vreo 1.0.0-alpha.8 → 1.1.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/README.md +46 -36
  3. package/lib/PlayController/index.js +1 -1
  4. package/lib/Player/Controller.d.ts +3 -2
  5. package/lib/Player/Controller.js +31 -14
  6. package/lib/Player/index.js +27 -16
  7. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +2 -2
  8. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +7 -12
  9. package/lib/Player/modules/VideoAgent/index.js +1 -1
  10. package/lib/Player/modules/Wave/index.js +160 -25
  11. package/lib/Player/modules/keyframes/BgMusic/index.js +52 -40
  12. package/lib/Player/modules/keyframes/PanoTag/index.js +1 -0
  13. package/lib/fivePlugins/CameraMovementPlugin/index.js +3 -2
  14. package/lib/shared-utils/Audio.d.ts +14 -0
  15. package/lib/shared-utils/Audio.js +158 -0
  16. package/lib/shared-utils/{AduioLike.d.ts → AudioLike.d.ts} +0 -0
  17. package/lib/shared-utils/{AduioLike.js → AudioLike.js} +4 -6
  18. package/lib/shared-utils/animationFrame/tween.d.ts +3 -58
  19. package/lib/shared-utils/animationFrame/tween.js +3 -9
  20. package/lib/typings/VreoUnit.d.ts +8 -5
  21. package/package.json +8 -6
  22. package/stylesheets/default.css +9 -2
  23. package/docs/.nojekyll +0 -1
  24. package/docs/assets/custom.css +0 -78
  25. package/docs/assets/highlight.css +0 -127
  26. package/docs/assets/icons.css +0 -1043
  27. package/docs/assets/icons.png +0 -0
  28. package/docs/assets/icons@2x.png +0 -0
  29. package/docs/assets/main.js +0 -52
  30. package/docs/assets/search.js +0 -1
  31. package/docs/assets/style.css +0 -1414
  32. package/docs/assets/widgets.png +0 -0
  33. package/docs/assets/widgets@2x.png +0 -0
  34. package/docs/classes/Player.AudioLike.html +0 -52
  35. package/docs/classes/Player.Controller.html +0 -54
  36. package/docs/classes/Player.Player-1.html +0 -50
  37. package/docs/classes/Player.VideoAgentMesh.html +0 -142
  38. package/docs/classes/Player.VideoAgentScene.html +0 -1
  39. package/docs/demo/assets/AppReact.6a524c19.js +0 -1
  40. package/docs/demo/assets/default.361f7c9c.js +0 -3988
  41. package/docs/demo/assets/default.63ebc790.css +0 -1
  42. package/docs/demo/assets/dynamic.dc5a9120.js +0 -1
  43. package/docs/demo/assets/examples.a3b2ec8a.js +0 -25
  44. package/docs/demo/assets/examples.dac4a6fe.css +0 -1
  45. package/docs/demo/assets/index.12496cce.js +0 -1
  46. package/docs/demo/assets/index.9331038f.css +0 -1
  47. package/docs/demo/assets/main.b05c3bb6.js +0 -1
  48. package/docs/demo/assets/react.2ee8565f.css +0 -1
  49. package/docs/demo/assets/react.61c6e2de.js +0 -25
  50. package/docs/demo/assets/znRoyv06SZQeqA7m.0057e8ae.js +0 -1
  51. package/docs/demo/examples.html +0 -17
  52. package/docs/demo/index-react-dynamic.html +0 -20
  53. package/docs/demo/index-react.html +0 -20
  54. package/docs/demo/index.html +0 -19
  55. package/docs/enums/Player.InfoPanelStyleEnum.html +0 -1
  56. package/docs/enums/Player.InfoPanelTypeEnum.html +0 -3
  57. package/docs/enums/Player.PanoEffectEnum.html +0 -5
  58. package/docs/enums/Player.PanoTagEnum.html +0 -3
  59. package/docs/enums/Player.PanoTagStyleEnum.html +0 -7
  60. package/docs/enums/Player.VreoKeyframeEnum.html +0 -25
  61. package/docs/enums/fivePlugins.CameraMovementEffect.html +0 -1
  62. package/docs/enums/fivePlugins.Rotation.html +0 -1
  63. package/docs/index.html +0 -245
  64. package/docs/interfaces/Player.CustomVreoKeyframeProps.html +0 -1
  65. package/docs/interfaces/Player.PlayerConfigs.html +0 -7
  66. package/docs/interfaces/Player.Vertex.html +0 -3
  67. package/docs/interfaces/Player.VideoAgentMeshOptions.html +0 -8
  68. package/docs/interfaces/Player.VreoKeyframe.html +0 -3
  69. package/docs/interfaces/Player.VreoUnit.html +0 -3
  70. package/docs/interfaces/Player.VreoVideo.html +0 -3
  71. package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +0 -4
  72. package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +0 -1
  73. package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +0 -7
  74. package/docs/interfaces/fivePlugins.CameraMovementPluginParameterType.html +0 -1
  75. package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +0 -1
  76. package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +0 -1
  77. package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +0 -1
  78. package/docs/interfaces/fivePlugins.Vector3Position.html +0 -3
  79. package/docs/interfaces/react.VreoActionCallbacks.html +0 -23
  80. package/docs/interfaces/react.VreoProviderProps.html +0 -1
  81. package/docs/modules/Player.html +0 -37
  82. package/docs/modules/custom.html +0 -3
  83. package/docs/modules/fivePlugins.html +0 -6
  84. package/docs/modules/react.html +0 -1
  85. package/docs/modules.html +0 -1
  86. package/resources/PlayController/createHTMLAudioElement.ts +0 -53
  87. package/resources/PlayController/index.ts +0 -154
  88. package/resources/Player/App.tsx +0 -66
  89. package/resources/Player/Controller.ts +0 -294
  90. package/resources/Player/custom/SpatialScenePanel/index.tsx +0 -264
  91. package/resources/Player/hooks.ts +0 -26
  92. package/resources/Player/index.tsx +0 -227
  93. package/resources/Player/modules/Drawer/index.tsx +0 -40
  94. package/resources/Player/modules/PopUp/index.tsx +0 -26
  95. package/resources/Player/modules/ResizeObserver/index.tsx +0 -23
  96. package/resources/Player/modules/VideoAgent/VideoAgentMesh.ts +0 -302
  97. package/resources/Player/modules/VideoAgent/VideoAgentScene.ts +0 -56
  98. package/resources/Player/modules/VideoAgent/index.tsx +0 -53
  99. package/resources/Player/modules/Wave/index.tsx +0 -18
  100. package/resources/Player/modules/keyframes/BgMusic/index.tsx +0 -66
  101. package/resources/Player/modules/keyframes/CameraMovement/index.tsx +0 -37
  102. package/resources/Player/modules/keyframes/InfoPanel/index.tsx +0 -165
  103. package/resources/Player/modules/keyframes/ModelVideo/index.tsx +0 -77
  104. package/resources/Player/modules/keyframes/PanoEffect/index.tsx +0 -99
  105. package/resources/Player/modules/keyframes/PanoEffect/lineAnime.ts +0 -31
  106. package/resources/Player/modules/keyframes/PanoTag/index.tsx +0 -82
  107. package/resources/Player/modules/keyframes/PanoTextLabel/index.tsx +0 -117
  108. package/resources/Player/modules/keyframes/Prompter/index.tsx +0 -56
  109. package/resources/Player/modules/keyframes/UpdateVRPanorama/index.tsx +0 -99
  110. package/resources/Player/modules/keyframes/VideoEffect/index.tsx +0 -115
  111. package/resources/Player/typings.ts +0 -49
  112. package/resources/fivePlugins/CSS3DRenderPlugin/centerPoint.ts +0 -5
  113. package/resources/fivePlugins/CSS3DRenderPlugin/createResizeObserver.ts +0 -17
  114. package/resources/fivePlugins/CSS3DRenderPlugin/evenNumber.ts +0 -4
  115. package/resources/fivePlugins/CSS3DRenderPlugin/index.ts +0 -254
  116. package/resources/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.ts +0 -5
  117. package/resources/fivePlugins/CameraMovementPlugin/index.ts +0 -226
  118. package/resources/fivePlugins/CameraMovementPlugin/typings.ts +0 -59
  119. package/resources/fivePlugins/ModelTVVideoPlugin/index.ts +0 -278
  120. package/resources/index.ts +0 -1
  121. package/resources/react/index.tsx +0 -121
  122. package/resources/shared-utils/AduioLike.ts +0 -109
  123. package/resources/shared-utils/Preloader.ts +0 -35
  124. package/resources/shared-utils/addResizeListener.ts +0 -46
  125. package/resources/shared-utils/animationFrame/BetterTween.ts +0 -33
  126. package/resources/shared-utils/animationFrame/index.ts +0 -48
  127. package/resources/shared-utils/animationFrame/tween.ts +0 -51
  128. package/resources/shared-utils/createTransMatrix.ts +0 -12
  129. package/resources/shared-utils/getFileExpandedName.ts +0 -6
  130. package/resources/shared-utils/getMediaInfo.ts +0 -52
  131. package/resources/shared-utils/setElementDataset.ts +0 -18
  132. package/resources/typings/VreoUnit.ts +0 -314
package/CHANGELOG.md CHANGED
@@ -1,9 +1,17 @@
1
1
  # CHANGELOG
2
+ #1.0.0-alpha.21
3
+ - fix: 多段BgMusic播放问题
4
+
5
+ #1.0.0-alpha.19
6
+ - fix: 多段BgMusic可以重复播放
7
+
8
+ #1.0.0-alpha.18
9
+ - fix: 修复无音频版本中途播放会从头开始的问题
10
+
2
11
  #1.0.0-alpha.1
3
12
  - feat: css样式适配: 手机横竖屏, pad, pc
4
13
  - feat: 新增两种波浪风格: 'wave' | 'solid'
5
14
  - feat: 标签调用dna插件
6
- - fix: 修复无音频版本中途播放会从头开始的问题
7
15
  - fix: 图片/视频 弹窗UI问题
8
16
 
9
17
  #0.2.0-alpha.25
package/README.md CHANGED
@@ -15,20 +15,36 @@
15
15
 
16
16
  ## 安装说明
17
17
 
18
- 推荐使用 `npm` `yarn` 的方式进行安装。由于 `@realsee/vreo` 依赖 [Five](https://unpkg.com/@realsee/five/docs/index.html) 和 [React](https://reactjs.org/) ,请务必同时安装相关依赖:
19
-
20
- ```bash
21
- $ npm install @realsee/vreo @realsee/five react react-dom --save
22
- # or
23
- $ yarn add @realsee/vreo @realsee/five react react-dom
24
- ```
18
+ - 由于 `@realsee/vreo` 依赖 [Five](https://unpkg.com/@realsee/five/docs/index.html) 和 [React](https://reactjs.org/) ,请务必同时安装相关依赖
19
+ - 根据项目的包管理器来安装:
20
+ ``` bash
21
+ # pnpm
22
+ pnpm install @realsee/vreo @realsee/five react react-dom --save
23
+ # npm
24
+ npm install @realsee/vreo @realsee/five react react-dom --save
25
+ # yarn
26
+ yarn add @realsee/vreo @realsee/five react react-dom
27
+ ```
25
28
 
26
29
  ## 快速上手
30
+ 引入样式:
27
31
 
32
+ ```css
33
+ /* @file xxx.css */
34
+ @import '@realsee/vreo/stylesheets/default.css';
35
+ ```
36
+
28
37
  ```jsx
38
+ /* @file xxx.tsx | xxx.jsx */
39
+ import '@realsee/vreo/stylesheets/default.css';
40
+ ```
41
+ examples:
42
+ ```tsx
43
+ /* @file index.tsx | index.jsx */
29
44
  import * as React from 'react'
30
45
  import { Five } from '@realsee/five'
31
46
  import { Player } from '@realsee/vreo'
47
+ import '@realsee/vreo/stylesheets/default.css';
32
48
 
33
49
  // 创建 Five 实例
34
50
  const five = new Five({
@@ -36,32 +52,28 @@ const five = new Five({
36
52
  })
37
53
 
38
54
  // 创建 Player 实例
39
- const vreoplayer = new Player(five)
55
+ const vreoPlayer = new Player(five)
40
56
 
41
57
  // 异步请求剧本数据
42
58
  const vreoUnit = await fetch('api/**/**')
43
59
 
44
60
  // 加载剧本数据(剧本数据见下文)
45
- vreoplayer.load(vreoUnit)
61
+ vreoPlayer.load(vreoUnit)
46
62
 
47
63
  // 播放
48
- vreoplayer.play()
64
+ vreoPlayer.play()
49
65
 
50
66
  // 暂停
51
- vreoplayer.pause()
52
- ```
53
-
54
- 引入样式:
55
-
56
- ```css
57
- @import '@realsee/vreo/stylesheets/default.css';
67
+ vreoPlayer.pause()
58
68
  ```
59
69
 
60
70
  ## React Context & Hooks 模式使用
61
71
 
62
72
  **Vreo** 支持 [React Context](https://reactjs.org/docs/context.html) 与 [Hooks](https://reactjs.org/docs/hooks-intro.html) 相配合的模式使用,简单样例如下:
63
73
 
64
- ```jsx
74
+ ```tsx
75
+ /* @file App.tsx */
76
+
65
77
  import * as React from 'react'
66
78
  import * as ReactDOM from 'react-dom'
67
79
  import { Five, Work, parseWork } from '@realsee/five'
@@ -78,20 +90,21 @@ const PlayButton: React.FC = () => {
78
90
  const { load, play, pause } = useVreoAction()
79
91
 
80
92
  return (
81
- <button
82
- onClick={async () => {
83
- // 获取讲房数据
84
- const vreoUnit = await fetch('api/**/**')
85
- // 载入数据
86
- await load(vreoUnit)
87
- // 播放
88
- play()
89
- // 暂停
90
- pause()
91
- }}
92
- >
93
- 讲解
94
- </button>
93
+ <>
94
+ <button
95
+ onClick={async () => {
96
+ // 获取讲房数据
97
+ const vreoUnit = await fetch('api/**/**')
98
+ // 载入数据
99
+ await load(vreoUnit)
100
+ // 播放
101
+ play()
102
+ }}
103
+ >
104
+ 讲解
105
+ </button>
106
+ <button onClick={() => pause()}>暂停</button>
107
+ </>
95
108
  )
96
109
  }
97
110
 
@@ -559,7 +572,4 @@ vreoplayer.load(vreoUnit, 0, true)
559
572
 
560
573
  ```
561
574
 
562
-
563
- ## API 文档
564
-
565
- 详细的 API 文档请参考:[Vreo API](https://realsee.js.org/vreo/index.html) 。
575
+ Enjoy it!
@@ -66,7 +66,7 @@ var PlayController = /*#__PURE__*/function (_Subscribe) {
66
66
  currentKeyframes.forEach(function (keyframe) {
67
67
  if (keyframe.parsed) return;
68
68
  keyframe.parsed = true;
69
- _this.emit(keyframe.type, keyframe);
69
+ _this.emit(keyframe.type, keyframe, _this.currentTime);
70
70
  });
71
71
  });
72
72
  return _this;
@@ -51,12 +51,13 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
51
51
  get ready(): boolean;
52
52
  get currentTime(): number;
53
53
  get currentKeyframes(): VreoKeyframe[];
54
- get mediaInstance(): HTMLVideoElement | HTMLAudioElement | import("../shared-utils/AduioLike").AudioLike | undefined;
54
+ get mediaInstance(): HTMLVideoElement | HTMLAudioElement | import("../shared-utils/AudioLike").AudioLike | undefined;
55
55
  /**
56
56
  * 逐帧任务
57
57
  */
58
- requestAnimationFrameLoop(callback: (type: VreoKeyframeEnum, keyframe: VreoKeyframe) => void): void;
58
+ requestAnimationFrameLoop(callback: (type: VreoKeyframeEnum, keyframe: VreoKeyframe, currentTime: number) => void): void;
59
59
  run(callback: (type: VreoKeyframeEnum, keyframe: VreoKeyframe) => void): void;
60
+ clear(): void;
60
61
  dispose(): void;
61
62
  }
62
63
  declare const ControllerContext: React.Context<Controller | null>;
@@ -9,6 +9,7 @@ var _five = require("@realsee/five");
9
9
  var _mobx = require("mobx");
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _animationFrame = require("../shared-utils/animationFrame");
12
+ var _VreoUnit = require("../typings/VreoUnit");
12
13
  var _setElementDataset = _interopRequireDefault(require("../shared-utils/setElementDataset"));
13
14
  var _getMediaInfo = require("../shared-utils/getMediaInfo");
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
@@ -72,6 +73,7 @@ var Controller = /*#__PURE__*/function (_Subscribe) {
72
73
  playing: _mobx.observable,
73
74
  setPlaying: _mobx.action,
74
75
  loading: _mobx.observable,
76
+ // videoAgentScene: observable.ref,
75
77
  setLoading: _mobx.action,
76
78
  popUp: _mobx.observable.ref,
77
79
  openPopUp: _mobx.action,
@@ -261,6 +263,12 @@ var Controller = /*#__PURE__*/function (_Subscribe) {
261
263
  // 没有被解析过且开始时间低于当前时间戳 100ms
262
264
  return keyframes.filter(function (keyframe) {
263
265
  if (keyframe.parsed) return false;
266
+ // 检测结束时间
267
+ if (keyframe.end < _this2.currentTime) return false;
268
+ // 检测开始时间
269
+ if (keyframe.start > _this2.currentTime) return false;
270
+ if (keyframe.type === _VreoUnit.VreoKeyframeEnum.BgMusic) return true;
271
+ // 开始时间低于当前时间戳 100ms
264
272
  var dur = _this2.currentTime - keyframe.start;
265
273
  return dur <= 100 && dur >= 0;
266
274
  });
@@ -281,10 +289,16 @@ var Controller = /*#__PURE__*/function (_Subscribe) {
281
289
  var _this$mediaInstance,
282
290
  _this$mediaInstance4,
283
291
  _this3 = this;
284
- if ((_this$mediaInstance = this.mediaInstance) !== null && _this$mediaInstance !== void 0 && _this$mediaInstance.ended) {
292
+ if ((_this$mediaInstance = this.mediaInstance) !== null && _this$mediaInstance !== void 0 && _this$mediaInstance.ended && this.mediaInstance.currentTime !== 0) {
293
+ var _this$vreoUnit;
294
+ if (this.ended) return;
295
+ (_this$vreoUnit = this.vreoUnit) === null || _this$vreoUnit === void 0 ? void 0 : _this$vreoUnit.keyframes.forEach(function (keyframe) {
296
+ return keyframe.parsed = false;
297
+ });
285
298
  this.setEnded(true);
286
299
  this.setPlaying(false);
287
300
  this.mediaInstance.pause();
301
+ this.mediaInstance.currentTime = 0;
288
302
  return;
289
303
  }
290
304
  if (!this.playing) {
@@ -302,9 +316,9 @@ var Controller = /*#__PURE__*/function (_Subscribe) {
302
316
  currentKeyframes.forEach(function (keyframe) {
303
317
  if (keyframe.parsed) return;
304
318
  keyframe.parsed = true;
305
- _this3.emit(keyframe.type, keyframe);
319
+ _this3.emit(keyframe.type, keyframe, _this3.currentTime);
306
320
  if (callback) {
307
- callback(keyframe.type, keyframe);
321
+ callback(keyframe.type, keyframe, _this3.currentTime);
308
322
  }
309
323
  });
310
324
  }
@@ -318,26 +332,29 @@ var Controller = /*#__PURE__*/function (_Subscribe) {
318
332
  });
319
333
  }
320
334
  }, {
321
- key: "dispose",
322
- value: function dispose() {
335
+ key: "clear",
336
+ value: function clear() {
337
+ var _this$vreoUnit2, _this$stopInterval;
323
338
  this.setPlaying(false);
324
- if (this.currentKeyframes) {
325
- this.currentKeyframes.forEach(function (keyframe) {
326
- return keyframe.parsed = false;
327
- });
328
- }
339
+ (_this$vreoUnit2 = this.vreoUnit) === null || _this$vreoUnit2 === void 0 ? void 0 : _this$vreoUnit2.keyframes.forEach(function (keyframe) {
340
+ return keyframe.parsed = false;
341
+ });
329
342
 
330
343
  /**
331
344
  * 清理掉数据
332
345
  */
333
346
  this.vreoUnit = undefined;
334
347
  if (this.mediaInstance) {
348
+ this.mediaInstance.pause();
335
349
  this.mediaInstance.currentTime = 0;
336
350
  }
337
- if (this.stopInterval) {
338
- this.stopInterval();
339
- this.stopInterval = undefined;
340
- }
351
+ (_this$stopInterval = this.stopInterval) === null || _this$stopInterval === void 0 ? void 0 : _this$stopInterval.call(this);
352
+ this.stopInterval = undefined;
353
+ }
354
+ }, {
355
+ key: "dispose",
356
+ value: function dispose() {
357
+ this.clear();
341
358
  }
342
359
  }]);
343
360
  return Controller;
@@ -14,6 +14,7 @@ var _VreoUnit = require("../typings/VreoUnit");
14
14
  var _mobx = require("mobx");
15
15
  var _Drawer = require("./modules/Drawer");
16
16
  var _PopUp = require("./modules/PopUp");
17
+ var _Audio = require("../shared-utils/Audio");
17
18
  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); }
18
19
  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
20
  function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return exports; }; var exports = {}, Op = Object.prototype, hasOwn = Op.hasOwnProperty, $Symbol = "function" == typeof Symbol ? Symbol : {}, iteratorSymbol = $Symbol.iterator || "@@iterator", asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator", toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; function define(obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: !0, configurable: !0, writable: !0 }), obj[key]; } try { define({}, ""); } catch (err) { define = function define(obj, key, value) { return obj[key] = value; }; } function wrap(innerFn, outerFn, self, tryLocsList) { var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator, generator = Object.create(protoGenerator.prototype), context = new Context(tryLocsList || []); return generator._invoke = function (innerFn, self, context) { var state = "suspendedStart"; return function (method, arg) { if ("executing" === state) throw new Error("Generator is already running"); if ("completed" === state) { if ("throw" === method) throw arg; return doneResult(); } for (context.method = method, context.arg = arg;;) { var delegate = context.delegate; if (delegate) { var delegateResult = maybeInvokeDelegate(delegate, context); if (delegateResult) { if (delegateResult === ContinueSentinel) continue; return delegateResult; } } if ("next" === context.method) context.sent = context._sent = context.arg;else if ("throw" === context.method) { if ("suspendedStart" === state) throw state = "completed", context.arg; context.dispatchException(context.arg); } else "return" === context.method && context.abrupt("return", context.arg); state = "executing"; var record = tryCatch(innerFn, self, context); if ("normal" === record.type) { if (state = context.done ? "completed" : "suspendedYield", record.arg === ContinueSentinel) continue; return { value: record.arg, done: context.done }; } "throw" === record.type && (state = "completed", context.method = "throw", context.arg = record.arg); } }; }(innerFn, self, context), generator; } function tryCatch(fn, obj, arg) { try { return { type: "normal", arg: fn.call(obj, arg) }; } catch (err) { return { type: "throw", arg: err }; } } exports.wrap = wrap; var ContinueSentinel = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var IteratorPrototype = {}; define(IteratorPrototype, iteratorSymbol, function () { return this; }); var getProto = Object.getPrototypeOf, NativeIteratorPrototype = getProto && getProto(getProto(values([]))); NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype); var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); function defineIteratorMethods(prototype) { ["next", "throw", "return"].forEach(function (method) { define(prototype, method, function (arg) { return this._invoke(method, arg); }); }); } function AsyncIterator(generator, PromiseImpl) { function invoke(method, arg, resolve, reject) { var record = tryCatch(generator[method], generator, arg); if ("throw" !== record.type) { var result = record.arg, value = result.value; return value && "object" == _typeof(value) && hasOwn.call(value, "__await") ? PromiseImpl.resolve(value.__await).then(function (value) { invoke("next", value, resolve, reject); }, function (err) { invoke("throw", err, resolve, reject); }) : PromiseImpl.resolve(value).then(function (unwrapped) { result.value = unwrapped, resolve(result); }, function (error) { return invoke("throw", error, resolve, reject); }); } reject(record.arg); } var previousPromise; this._invoke = function (method, arg) { function callInvokeWithMethodAndArg() { return new PromiseImpl(function (resolve, reject) { invoke(method, arg, resolve, reject); }); } return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); }; } function maybeInvokeDelegate(delegate, context) { var method = delegate.iterator[context.method]; if (undefined === method) { if (context.delegate = null, "throw" === context.method) { if (delegate.iterator["return"] && (context.method = "return", context.arg = undefined, maybeInvokeDelegate(delegate, context), "throw" === context.method)) return ContinueSentinel; context.method = "throw", context.arg = new TypeError("The iterator does not provide a 'throw' method"); } return ContinueSentinel; } var record = tryCatch(method, delegate.iterator, context.arg); if ("throw" === record.type) return context.method = "throw", context.arg = record.arg, context.delegate = null, ContinueSentinel; var info = record.arg; return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, "return" !== context.method && (context.method = "next", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = "throw", context.arg = new TypeError("iterator result is not an object"), context.delegate = null, ContinueSentinel); } function pushTryEntry(locs) { var entry = { tryLoc: locs[0] }; 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry); } function resetTryEntry(entry) { var record = entry.completion || {}; record.type = "normal", delete record.arg, entry.completion = record; } function Context(tryLocsList) { this.tryEntries = [{ tryLoc: "root" }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0); } function values(iterable) { if (iterable) { var iteratorMethod = iterable[iteratorSymbol]; if (iteratorMethod) return iteratorMethod.call(iterable); if ("function" == typeof iterable.next) return iterable; if (!isNaN(iterable.length)) { var i = -1, next = function next() { for (; ++i < iterable.length;) { if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next; } return next.value = undefined, next.done = !0, next; }; return next.next = next; } } return { next: doneResult }; } function doneResult() { return { value: undefined, done: !0 }; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, "constructor", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, "GeneratorFunction"), exports.isGeneratorFunction = function (genFun) { var ctor = "function" == typeof genFun && genFun.constructor; return !!ctor && (ctor === GeneratorFunction || "GeneratorFunction" === (ctor.displayName || ctor.name)); }, exports.mark = function (genFun) { return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, "GeneratorFunction")), genFun.prototype = Object.create(Gp), genFun; }, exports.awrap = function (arg) { return { __await: arg }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () { return this; }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) { void 0 === PromiseImpl && (PromiseImpl = Promise); var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl); return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { return result.done ? result.value : iter.next(); }); }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, "Generator"), define(Gp, iteratorSymbol, function () { return this; }), define(Gp, "toString", function () { return "[object Generator]"; }), exports.keys = function (object) { var keys = []; for (var key in object) { keys.push(key); } return keys.reverse(), function next() { for (; keys.length;) { var key = keys.pop(); if (key in object) return next.value = key, next.done = !1, next; } return next.done = !0, next; }; }, exports.values = values, Context.prototype = { constructor: Context, reset: function reset(skipTempReset) { if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = "next", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) { "t" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined); } }, stop: function stop() { this.done = !0; var rootRecord = this.tryEntries[0].completion; if ("throw" === rootRecord.type) throw rootRecord.arg; return this.rval; }, dispatchException: function dispatchException(exception) { if (this.done) throw exception; var context = this; function handle(loc, caught) { return record.type = "throw", record.arg = exception, context.next = loc, caught && (context.method = "next", context.arg = undefined), !!caught; } for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i], record = entry.completion; if ("root" === entry.tryLoc) return handle("end"); if (entry.tryLoc <= this.prev) { var hasCatch = hasOwn.call(entry, "catchLoc"), hasFinally = hasOwn.call(entry, "finallyLoc"); if (hasCatch && hasFinally) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } else if (hasCatch) { if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0); } else { if (!hasFinally) throw new Error("try statement without catch or finally"); if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc); } } } }, abrupt: function abrupt(type, arg) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { var finallyEntry = entry; break; } } finallyEntry && ("break" === type || "continue" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null); var record = finallyEntry ? finallyEntry.completion : {}; return record.type = type, record.arg = arg, finallyEntry ? (this.method = "next", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record); }, complete: function complete(record, afterLoc) { if ("throw" === record.type) throw record.arg; return "break" === record.type || "continue" === record.type ? this.next = record.arg : "return" === record.type ? (this.rval = this.arg = record.arg, this.method = "return", this.next = "end") : "normal" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel; }, finish: function finish(finallyLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel; } }, "catch": function _catch(tryLoc) { for (var i = this.tryEntries.length - 1; i >= 0; --i) { var entry = this.tryEntries[i]; if (entry.tryLoc === tryLoc) { var record = entry.completion; if ("throw" === record.type) { var thrown = record.arg; resetTryEntry(entry); } return thrown; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(iterable, resultName, nextLoc) { return this.delegate = { iterator: values(iterable), resultName: resultName, nextLoc: nextLoc }, "next" === this.method && (this.arg = undefined), ContinueSentinel; } }, exports; }
@@ -123,23 +124,24 @@ var Player = /*#__PURE__*/function (_Subscribe) {
123
124
  currentTime = _args.length > 1 && _args[1] !== undefined ? _args[1] : 0;
124
125
  preload = _args.length > 2 && _args[2] !== undefined ? _args[2] : false;
125
126
  force = _args.length > 3 && _args[3] !== undefined ? _args[3] : false;
127
+ this.controller.clear();
126
128
  this.controller.setLoading(true);
127
129
  if (force) {
128
130
  vreoUnit = JSON.parse(JSON.stringify(vreoUnit));
129
131
  }
130
132
  if (this.controller.visible) {
131
- _context.next = 9;
133
+ _context.next = 10;
132
134
  break;
133
135
  }
134
136
  this.controller.setVisible(true);
135
137
  // 延迟 500ms 规避跟 DOM 动画冲突
136
- _context.next = 9;
138
+ _context.next = 10;
137
139
  return new Promise(function (resolve) {
138
140
  setTimeout(function () {
139
141
  return resolve(true);
140
142
  }, 500);
141
143
  });
142
- case 9:
144
+ case 10:
143
145
  if (this.controller.stopInterval) {
144
146
  this.controller.stopInterval();
145
147
  this.controller.stopInterval = undefined;
@@ -155,7 +157,7 @@ var Player = /*#__PURE__*/function (_Subscribe) {
155
157
 
156
158
  // 预载数据中的点位
157
159
  if (!(preload || preload === undefined && this.configs.autoPreload)) {
158
- _context.next = 23;
160
+ _context.next = 24;
159
161
  break;
160
162
  }
161
163
  panoIndexMap = vreoUnit.keyframes.filter(function (vreoKeyframe) {
@@ -176,18 +178,18 @@ var Player = /*#__PURE__*/function (_Subscribe) {
176
178
  }, {});
177
179
  panoIndexes = Object.keys(panoIndexMap);
178
180
  i = 0;
179
- case 17:
181
+ case 18:
180
182
  if (!(i < panoIndexes.length)) {
181
- _context.next = 23;
183
+ _context.next = 24;
182
184
  break;
183
185
  }
184
- _context.next = 20;
186
+ _context.next = 21;
185
187
  return this.$five.preloadPano(Number(panoIndexes[i]));
186
- case 20:
188
+ case 21:
187
189
  i++;
188
- _context.next = 17;
190
+ _context.next = 18;
189
191
  break;
190
- case 23:
192
+ case 24:
191
193
  // 新数据载入就绪
192
194
  this.emit('loaded', vreoUnit);
193
195
  this.controller.emit('loaded', vreoUnit);
@@ -195,17 +197,20 @@ var Player = /*#__PURE__*/function (_Subscribe) {
195
197
  this.controller.videoAgentScene.videoAgentMesh.mediaInstance.currentTime = currentTime / 1000;
196
198
  }
197
199
  this.controller.setAvatar(vreoUnit.video.avatar);
198
- _context.next = 29;
200
+ _context.next = 30;
201
+ return (0, _Audio.waitForBlankAudioGenerated)();
202
+ case 30:
203
+ _context.next = 32;
199
204
  return (_this$controller$vide2 = this.controller.videoAgentScene) === null || _this$controller$vide2 === void 0 ? void 0 : _this$controller$vide2.videoAgentMesh.play(vreoUnit.video.url, currentTime / 1000, vreoUnit.video.duration);
200
- case 29:
205
+ case 32:
201
206
  this.controller.setEnded(false);
202
207
  this.play();
203
208
  this.controller.run(function (type, keyframe) {
204
- return _this2.emit(type, keyframe);
209
+ return _this2.emit(type, keyframe, _this2.controller.currentTime);
205
210
  });
206
211
  this.controller.setLoading(false);
207
212
  return _context.abrupt("return", true);
208
- case 34:
213
+ case 37:
209
214
  case "end":
210
215
  return _context.stop();
211
216
  }
@@ -225,6 +230,7 @@ var Player = /*#__PURE__*/function (_Subscribe) {
225
230
  }, {
226
231
  key: "play",
227
232
  value: function play(currentTime) {
233
+ var _this$controller$vreo;
228
234
  if (this.controller.playing) return true;
229
235
  if (currentTime && this.controller.mediaInstance) {
230
236
  this.controller.mediaInstance.currentTime = currentTime / 1000;
@@ -232,7 +238,13 @@ var Player = /*#__PURE__*/function (_Subscribe) {
232
238
  Object.assign(window, {
233
239
  $vreoController: this.controller
234
240
  });
241
+ this.controller.setEnded(false);
235
242
  this.controller.setPlaying(true);
243
+ (_this$controller$vreo = this.controller.vreoUnit) === null || _this$controller$vreo === void 0 ? void 0 : _this$controller$vreo.keyframes.forEach(function (keyframe) {
244
+ if (keyframe.type === _VreoUnit.VreoKeyframeEnum.BgMusic) {
245
+ keyframe.parsed = false;
246
+ }
247
+ });
236
248
  return true;
237
249
  }
238
250
  }, {
@@ -263,7 +275,6 @@ var Player = /*#__PURE__*/function (_Subscribe) {
263
275
  }, {
264
276
  key: "dispose",
265
277
  value: function dispose() {
266
- this.pause();
267
278
  this.controller.dispose();
268
279
  if (this.configs.container) {
269
280
  ReactDOM.unmountComponentAtNode(this.configs.container);
@@ -273,4 +284,4 @@ var Player = /*#__PURE__*/function (_Subscribe) {
273
284
  return Player;
274
285
  }(_five.Subscribe);
275
286
  exports.Player = Player;
276
- console.log("\n\n\u250F\u2501\u2501\u2501\u2513\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u250F\u2513\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u2503\u250F\u2501\u2513\u2503\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2503\u2503\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u2503\u2517\u2501\u251B\u2503\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\u2501\u2503\u2503\u2501\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\n\u2503\u250F\u2513\u250F\u251B\u2503\u250F\u2513\u2503\u2517\u2501\u2513\u2503\u2501\u2503\u2503\u2501\u2503\u2501\u2501\u252B\u2503\u250F\u2513\u2503\u2503\u250F\u2513\u2503\n\u2503\u2503\u2503\u2517\u2513\u2503\u2503\u2501\u252B\u2503\u2517\u251B\u2517\u2513\u2503\u2517\u2513\u2523\u2501\u2501\u2503\u2503\u2503\u2501\u252B\u2503\u2503\u2501\u252B\n\u2517\u251B\u2517\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u2501\u251B\u2517\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u251B\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n");
287
+ console.log("\n \u250F\u2501\u2501\u2501\u2513\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u250F\u2513\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n \u2503\u250F\u2501\u2513\u2503\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2503\u2503\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n \u2503\u2517\u2501\u251B\u2503\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\u2501\u2503\u2503\u2501\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\u250F\u2501\u2501\u2513\n \u2503\u250F\u2513\u250F\u251B\u2503\u250F\u2513\u2503\u2517\u2501\u2513\u2503\u2501\u2503\u2503\u2501\u2503\u2501\u2501\u252B\u2503\u250F\u2513\u2503\u2503\u250F\u2513\u2503\n \u2503\u2503\u2503\u2517\u2513\u2503\u2503\u2501\u252B\u2503\u2517\u251B\u2517\u2513\u2503\u2517\u2513\u2523\u2501\u2501\u2503\u2503\u2503\u2501\u252B\u2503\u2503\u2501\u252B\n \u2517\u251B\u2517\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u2501\u251B\u2517\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u251B\u2517\u2501\u2501\u251B\n \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n");
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import AudioLike from '../../../shared-utils/AduioLike';
2
+ import AudioLike from '../../../shared-utils/AudioLike';
3
3
  export interface VideoAgentMeshOptions {
4
4
  /**
5
5
  * 自定义视频实例。
@@ -40,7 +40,7 @@ export declare class VideoAgentMesh extends THREE.Mesh {
40
40
  private update;
41
41
  play(videoUrl?: string, currentTime?: number, duration?: number): Promise<unknown>;
42
42
  /**
43
- * 转成毫秒,保障精准度
43
+ * 秒转成毫秒,保障精准度
44
44
  */
45
45
  get currentTime(): number;
46
46
  dispose(): void;
@@ -8,7 +8,7 @@ exports.VideoAgentMesh = void 0;
8
8
  var THREE = _interopRequireWildcard(require("three"));
9
9
  var _Preloader = require("../../../shared-utils/Preloader");
10
10
  var _mobx = require("mobx");
11
- var _AduioLike = _interopRequireDefault(require("../../../shared-utils/AduioLike"));
11
+ var _AudioLike = _interopRequireDefault(require("../../../shared-utils/AudioLike"));
12
12
  var _getMediaInfo = require("../../../shared-utils/getMediaInfo");
13
13
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14
14
  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); }
@@ -46,7 +46,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
46
46
  * @param options
47
47
  */
48
48
  function VideoAgentMesh(width, height, widthSegments, heightSegments) {
49
- var _this$options$videoIn, _this$options$videoIn2, _this$options$videoIn3;
49
+ var _this$options$videoIn, _this$options$videoIn2;
50
50
  var _this;
51
51
  var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
52
52
  preload: true
@@ -103,7 +103,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
103
103
  } else {
104
104
  _this.audioInstance = options.audioInstance;
105
105
  }
106
- _this.audioLikeInstance = new _AduioLike["default"]();
106
+ _this.audioLikeInstance = new _AudioLike["default"]();
107
107
  (0, _mobx.makeObservable)(_assertThisInitialized(_this), {
108
108
  paused: _mobx.observable
109
109
  });
@@ -118,25 +118,20 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
118
118
  var onPlay = function onPlay() {
119
119
  return updatePaused(false);
120
120
  };
121
- var onEnded = function onEnded() {
122
- return console.log('vreo: video 播放结束');
123
- };
124
121
  _this.audioInstance.addEventListener('pause', onPause);
125
122
  _this.audioInstance.addEventListener('play', onPlay);
126
123
  (_this$options$videoIn = _this.options.videoInstance) === null || _this$options$videoIn === void 0 ? void 0 : _this$options$videoIn.addEventListener('pause', onPause);
127
124
  (_this$options$videoIn2 = _this.options.videoInstance) === null || _this$options$videoIn2 === void 0 ? void 0 : _this$options$videoIn2.addEventListener('play', onPlay);
128
125
  _this.audioLikeInstance.addEventListener('pause', onPause);
129
126
  _this.audioLikeInstance.addEventListener('play', onPlay);
130
- (_this$options$videoIn3 = _this.options.videoInstance) === null || _this$options$videoIn3 === void 0 ? void 0 : _this$options$videoIn3.addEventListener('ended', onEnded);
131
127
  _this.$removeEventListener = function () {
132
- var _this$options$videoIn4, _this$options$videoIn5, _this$options$videoIn6;
128
+ var _this$options$videoIn3, _this$options$videoIn4;
133
129
  _this.audioInstance.removeEventListener('pause', onPause);
134
130
  _this.audioInstance.removeEventListener('play', onPlay);
135
- (_this$options$videoIn4 = _this.options.videoInstance) === null || _this$options$videoIn4 === void 0 ? void 0 : _this$options$videoIn4.removeEventListener('pause', onPause);
136
- (_this$options$videoIn5 = _this.options.videoInstance) === null || _this$options$videoIn5 === void 0 ? void 0 : _this$options$videoIn5.removeEventListener('play', onPlay);
131
+ (_this$options$videoIn3 = _this.options.videoInstance) === null || _this$options$videoIn3 === void 0 ? void 0 : _this$options$videoIn3.removeEventListener('pause', onPause);
132
+ (_this$options$videoIn4 = _this.options.videoInstance) === null || _this$options$videoIn4 === void 0 ? void 0 : _this$options$videoIn4.removeEventListener('play', onPlay);
137
133
  _this.audioLikeInstance.removeEventListener('pause', onPause);
138
134
  _this.audioLikeInstance.removeEventListener('play', onPlay);
139
- (_this$options$videoIn6 = _this.options.videoInstance) === null || _this$options$videoIn6 === void 0 ? void 0 : _this$options$videoIn6.removeEventListener('ended', onEnded);
140
135
  };
141
136
  return _this;
142
137
  }
@@ -320,7 +315,7 @@ var VideoAgentMesh = /*#__PURE__*/function (_THREE$Mesh) {
320
315
  return play;
321
316
  }()
322
317
  /**
323
- * 转成毫秒,保障精准度
318
+ * 秒转成毫秒,保障精准度
324
319
  */
325
320
  }, {
326
321
  key: "currentTime",
@@ -24,7 +24,7 @@ function VideoAgent(props) {
24
24
  var _controller$videoAgen;
25
25
  if (showAvatar) return false;
26
26
  return ((_controller$videoAgen = controller.videoAgentScene) === null || _controller$videoAgen === void 0 ? void 0 : _controller$videoAgen.videoAgentMesh.mediaInstance) instanceof HTMLVideoElement;
27
- }, [controller.videoAgentScene]);
27
+ }, [controller.videoAgentScene, showAvatar]);
28
28
  React.useEffect(function () {
29
29
  if (!ref.current) throw new Error('React 渲染异常,请稍后重试 ...');
30
30
  if (controller.videoAgentScene) {