@realsee/vreo 2.4.7 → 2.5.0-alpha.2

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/README.md +1 -1
  2. package/docs/assets/navigation.js +1 -1
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/Player.AudioLike.html +2 -2
  5. package/docs/classes/Player.Controller.html +52 -4
  6. package/docs/classes/Player.Player.html +43 -2
  7. package/docs/classes/Player.VideoAgentMesh.html +61 -4
  8. package/docs/classes/Player.VideoAgentScene.html +2 -2
  9. package/docs/demo/assets/{examples-5qw3pq5z.js → examples-DfiAz2fR.js} +1 -1
  10. package/docs/demo/assets/react-BnzBLum3.css +1 -0
  11. package/docs/demo/examples.html +1 -1
  12. package/docs/demo/index-react.html +2 -2
  13. package/docs/demo/index.html +1 -1
  14. package/docs/enums/Player.InfoPanelStyleEnum.html +2 -2
  15. package/docs/enums/Player.InfoPanelTypeEnum.html +2 -2
  16. package/docs/enums/Player.PanoEffectEnum.html +2 -2
  17. package/docs/enums/Player.PanoTagEnum.html +2 -2
  18. package/docs/enums/Player.PanoTagStyleEnum.html +3 -3
  19. package/docs/enums/Player.VreoKeyframeEnum.html +13 -13
  20. package/docs/enums/fivePlugins.CameraMovementEffect.html +2 -2
  21. package/docs/enums/fivePlugins.Rotation.html +2 -2
  22. package/docs/functions/custom.SpatialScenePanel.html +1 -1
  23. package/docs/functions/react.useVreoAction.html +8 -1
  24. package/docs/functions/react.useVreoEventCallback.html +10 -1
  25. package/docs/functions/react.useVreoPausedState.html +8 -1
  26. package/docs/index.html +1 -1
  27. package/docs/interfaces/Player.Appearance.html +2 -0
  28. package/docs/interfaces/Player.CustomVreoKeyframeProps.html +2 -2
  29. package/docs/interfaces/Player.PlayerConfigs.html +6 -6
  30. package/docs/interfaces/Player.Vertex.html +2 -2
  31. package/docs/interfaces/Player.VideoAgentMeshOptions.html +5 -4
  32. package/docs/interfaces/Player.VreoKeyframe.html +2 -2
  33. package/docs/interfaces/Player.VreoUnit.html +2 -2
  34. package/docs/interfaces/Player.VreoVideo.html +2 -2
  35. package/docs/interfaces/fivePlugins.CSS3DRenderPluginExportType.html +7 -5
  36. package/docs/interfaces/fivePlugins.CameraMovementOptsCallback.html +2 -2
  37. package/docs/interfaces/fivePlugins.CameraMovementPluginExportType.html +3 -3
  38. package/docs/interfaces/fivePlugins.CameraMovementPluginParameterType.html +1 -1
  39. package/docs/interfaces/fivePlugins.ModelTVVideoPluginData.html +2 -2
  40. package/docs/interfaces/fivePlugins.ModelTVVideoPluginExportType.html +2 -2
  41. package/docs/interfaces/fivePlugins.ModelTVVideoPluginParameterType.html +2 -2
  42. package/docs/interfaces/fivePlugins.Vector3Position.html +2 -2
  43. package/docs/interfaces/react.VreoActionCallbacks.html +7 -7
  44. package/docs/interfaces/react.VreoProviderProps.html +5 -2
  45. package/docs/modules/Player.html +1 -1
  46. package/docs/modules/fivePlugins.html +1 -1
  47. package/docs/types/Player.AppSize.html +1 -0
  48. package/docs/types/Player.AudioLikeEvent.html +2 -2
  49. package/docs/types/Player.CameraMovementData.html +1 -1
  50. package/docs/types/Player.CustomData.html +1 -1
  51. package/docs/types/Player.InfoPanelData.html +2 -2
  52. package/docs/types/Player.ModelVideoData.html +5 -5
  53. package/docs/types/Player.PanoEffectData.html +2 -2
  54. package/docs/types/Player.PanoTagData.html +2 -2
  55. package/docs/types/Player.PanoTextLabelData.html +2 -2
  56. package/docs/types/Player.PrompterData.html +2 -2
  57. package/docs/types/Player.QuadrangleVertexs.html +1 -1
  58. package/docs/types/Player.Quaternion.html +2 -2
  59. package/docs/types/Player.UpdateVRPanoramaData.html +2 -2
  60. package/docs/types/Player.Vertexs.html +1 -1
  61. package/docs/types/Player.VideoEffectData.html +2 -2
  62. package/docs/types/Player.VreoKeyframeEvent.html +1 -1
  63. package/docs/types/Player.VreoKeyframeMap.html +2 -2
  64. package/docs/types/Player.VreoSubscribe.html +1 -1
  65. package/docs/types/Player.WaveAppearance.html +1 -0
  66. package/docs/types/fivePlugins.CSS3DRenderPluginParameterType.html +1 -0
  67. package/docs/types/fivePlugins.MoveArgs.html +1 -1
  68. package/docs/types/fivePlugins.MoveOpts.html +1 -1
  69. package/docs/types/fivePlugins.RotateArgs.html +1 -1
  70. package/docs/types/fivePlugins.RotateOpts.html +1 -1
  71. package/docs/variables/fivePlugins.CSS3DRenderPlugin.html +2 -2
  72. package/docs/variables/fivePlugins.CameraMovementPlugin.html +1 -1
  73. package/docs/variables/fivePlugins.ModelTVVideoPlugin.html +1 -1
  74. package/docs/variables/react.VreoProvider.html +9 -1
  75. package/lib/PlayController/createHTMLAudioElement.js +5 -12
  76. package/lib/PlayController/index.js +27 -34
  77. package/lib/Player/App.js +25 -34
  78. package/lib/Player/Controller.d.ts +106 -2
  79. package/lib/Player/Controller.js +190 -78
  80. package/lib/Player/custom/SpatialScenePanel/index.js +20 -31
  81. package/lib/Player/hooks.js +6 -15
  82. package/lib/Player/index.d.ts +103 -0
  83. package/lib/Player/index.js +153 -45
  84. package/lib/Player/modules/Drawer/index.js +8 -17
  85. package/lib/Player/modules/PopUp/index.js +8 -17
  86. package/lib/Player/modules/ResizeObserver/index.js +10 -17
  87. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +108 -7
  88. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +157 -52
  89. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +16 -25
  90. package/lib/Player/modules/VideoAgent/index.js +8 -17
  91. package/lib/Player/modules/Wave/index.js +24 -33
  92. package/lib/Player/modules/keyframes/BgMusic/index.js +13 -22
  93. package/lib/Player/modules/keyframes/CameraMovement/index.js +17 -26
  94. package/lib/Player/modules/keyframes/InfoPanel/index.js +13 -21
  95. package/lib/Player/modules/keyframes/ModelVideo/index.js +17 -26
  96. package/lib/Player/modules/keyframes/PanoEffect/index.js +21 -30
  97. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +6 -14
  98. package/lib/Player/modules/keyframes/PanoTag/index.js +10 -18
  99. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +19 -28
  100. package/lib/Player/modules/keyframes/Prompter/index.js +13 -22
  101. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +16 -24
  102. package/lib/Player/modules/keyframes/VideoEffect/index.js +18 -28
  103. package/lib/Player/typings.js +1 -5
  104. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +3 -9
  105. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +1 -7
  106. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +1 -7
  107. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +6 -12
  108. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +27 -37
  109. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +3 -9
  110. package/lib/fivePlugins/CameraMovementPlugin/index.js +15 -22
  111. package/lib/fivePlugins/CameraMovementPlugin/typings.js +6 -10
  112. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +9 -18
  113. package/lib/index.js +1 -12
  114. package/lib/react/index.d.ts +111 -0
  115. package/lib/react/index.js +148 -24
  116. package/lib/shared-utils/Audio.js +27 -37
  117. package/lib/shared-utils/AudioLike.js +22 -29
  118. package/lib/shared-utils/Preloader.js +1 -7
  119. package/lib/shared-utils/addResizeListener.js +4 -11
  120. package/lib/shared-utils/animationFrame/BetterTween.js +23 -33
  121. package/lib/shared-utils/animationFrame/index.js +4 -13
  122. package/lib/shared-utils/animationFrame/tween.js +9 -17
  123. package/lib/shared-utils/createTransMatrix.js +5 -14
  124. package/lib/shared-utils/getFileExpandedName.js +1 -7
  125. package/lib/shared-utils/getMediaInfo.js +8 -19
  126. package/lib/shared-utils/setElementDataset.js +1 -7
  127. package/lib/typings/VreoUnit.js +15 -17
  128. package/package.json +58 -5
  129. package/stylesheets/custom/SpatialScenePanel.css +7 -7
  130. package/stylesheets/default.css +1 -1
  131. package/docs/demo/assets/react-dPVEotm3.css +0 -1
  132. /package/docs/demo/assets/{react-BLZb_LNZ.js → react-C4h9qndP.js} +0 -0
@@ -1,14 +1,7 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.CameraMovementPlugin = void 0;
8
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
- var _five = require("@realsee/five");
11
- var _typings = require("./typings");
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { Five } from '@realsee/five';
4
+ import { Rotation } from "./typings.js";
12
5
  var PI = Math.PI;
13
6
  var PI_2 = PI * 2;
14
7
  var moving = false; // five 6 神秘bug, move 的时候不能 setState
@@ -18,7 +11,7 @@ function progressNumber(from, to, pst) {
18
11
  return from + (to - from) * pst;
19
12
  }
20
13
  function progressLongitude(fromLongitude, toLongitude, rotation, progress) {
21
- var clockwise = rotation === _typings.Rotation.Clockwise;
14
+ var clockwise = rotation === Rotation.Clockwise;
22
15
  var delta = clockwise ? fromLongitude - toLongitude : toLongitude - fromLongitude;
23
16
  var deltaMod = delta % PI_2;
24
17
  var deltaMod2 = deltaMod < 0 ? deltaMod + PI_2 : deltaMod;
@@ -30,16 +23,16 @@ function progressLongitude(fromLongitude, toLongitude, rotation, progress) {
30
23
  /**
31
24
  * **运镜插件** 模拟类似于电影运镜效果。
32
25
  */
33
- var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovementPlugin(five) {
26
+ export var CameraMovementPlugin = function CameraMovementPlugin(five) {
34
27
  var move = function move(args, duration) {
35
28
  var opts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
36
29
  preload: true
37
30
  };
38
31
  return new Promise(/*#__PURE__*/function () {
39
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(resolve, reject) {
32
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(resolve, reject) {
40
33
  var _opts$asyncEndCallbac;
41
34
  var panoIndex, start, movePanoOptions;
42
- return _regenerator["default"].wrap(function _callee$(_context) {
35
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
43
36
  while (1) {
44
37
  switch (_context.prev = _context.next) {
45
38
  case 0:
@@ -62,7 +55,7 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
62
55
  case 7:
63
56
  return _context.abrupt("return", resolve(true));
64
57
  case 8:
65
- if (!(args.mode === _five.Five.Mode.Floorplan)) {
58
+ if (!(args.mode === Five.Mode.Floorplan)) {
66
59
  _context.next = 10;
67
60
  break;
68
61
  }
@@ -124,7 +117,7 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
124
117
  }());
125
118
  };
126
119
  var rotate = /*#__PURE__*/function () {
127
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(args, duration) {
120
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(args, duration) {
128
121
  var _opts$asyncStartCallb, _opts$asyncEndCallbac2;
129
122
  var opts,
130
123
  from,
@@ -134,7 +127,7 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
134
127
  animeDuration,
135
128
  onFiveRenderFrame,
136
129
  _args2 = arguments;
137
- return _regenerator["default"].wrap(function _callee2$(_context2) {
130
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
138
131
  while (1) {
139
132
  switch (_context2.prev = _context2.next) {
140
133
  case 0:
@@ -148,11 +141,11 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
148
141
  break;
149
142
  }
150
143
  _context2.next = 6;
151
- return five.changeMode(args.mode, args.mode === _five.Five.Mode.Panorama ? {
144
+ return five.changeMode(args.mode, args.mode === Five.Mode.Panorama ? {
152
145
  latitude: 0
153
146
  } : undefined);
154
147
  case 6:
155
- if (!(args.mode === _five.Five.Mode.Panorama && five.currentMode === _five.Five.Mode.Panorama && args.panoIndex !== undefined && args.panoIndex !== five.panoIndex)) {
148
+ if (!(args.mode === Five.Mode.Panorama && five.currentMode === Five.Mode.Panorama && args.panoIndex !== undefined && args.panoIndex !== five.panoIndex)) {
156
149
  _context2.next = 12;
157
150
  break;
158
151
  }
@@ -191,7 +184,7 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
191
184
  timeEnd = false; // 开始时间
192
185
  start = performance.now();
193
186
  animeDuration = duration;
194
- if (args.rotation === _typings.Rotation.Loop) {
187
+ if (args.rotation === Rotation.Loop) {
195
188
  animeDuration = args.rotateSpeed ? Math.ceil(Math.abs(to.longitude - from.longitude) / args.rotateSpeed * 1000) : duration;
196
189
  animeDuration = Math.min(duration, animeDuration);
197
190
  }
@@ -201,7 +194,7 @@ var CameraMovementPlugin = exports.CameraMovementPlugin = function CameraMovemen
201
194
  return;
202
195
  }
203
196
  var targetState = {};
204
- if (args.rotation !== _typings.Rotation.Loop) {
197
+ if (args.rotation !== Rotation.Loop) {
205
198
  var progress = (performance.now() - start) / duration;
206
199
  targetState = {
207
200
  fov: progressNumber(from.fov, to.fov, progress),
@@ -1,19 +1,15 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.Rotation = exports.CameraMovementEffect = void 0;
7
1
  /* eslint-disable prettier/prettier */
2
+
8
3
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
9
- var CameraMovementEffect;
4
+
5
+ export var CameraMovementEffect;
10
6
  (function (CameraMovementEffect) {
11
7
  CameraMovementEffect["Move"] = "Move";
12
8
  CameraMovementEffect["Rotate"] = "Rotate";
13
- })(CameraMovementEffect || (exports.CameraMovementEffect = CameraMovementEffect = {}));
14
- var Rotation;
9
+ })(CameraMovementEffect || (CameraMovementEffect = {}));
10
+ export var Rotation;
15
11
  (function (Rotation) {
16
12
  Rotation["Clockwise"] = "Clockwise";
17
13
  Rotation["Anticlockwise"] = "Anticlockwise";
18
14
  Rotation["Loop"] = "Loop";
19
- })(Rotation || (exports.Rotation = Rotation = {}));
15
+ })(Rotation || (Rotation = {}));
@@ -1,17 +1,8 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.ModelTVVideoPlugin = void 0;
9
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
- var THREE = _interopRequireWildcard(require("three"));
13
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) { "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); } return f; })(e, t); }
14
- var ModelTVVideoPlugin = exports.ModelTVVideoPlugin = function ModelTVVideoPlugin(five, _ref) {
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) {
15
6
  var videoElement = _ref.videoElement;
16
7
  var state = {
17
8
  videoMeshes: [],
@@ -158,9 +149,9 @@ var ModelTVVideoPlugin = exports.ModelTVVideoPlugin = function ModelTVVideoPlugi
158
149
  });
159
150
  };
160
151
  var load = /*#__PURE__*/function () {
161
- var _ref2 = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(data, videoElement) {
152
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(data, videoElement) {
162
153
  var video_src, video_poster_src, points;
163
- return _regenerator["default"].wrap(function _callee$(_context) {
154
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
164
155
  while (1) {
165
156
  switch (_context.prev = _context.next) {
166
157
  case 0:
@@ -201,7 +192,7 @@ var ModelTVVideoPlugin = exports.ModelTVVideoPlugin = function ModelTVVideoPlugi
201
192
  five.on('wantsTapGesture', function (raycaster) {
202
193
  if (!state.enabled) return;
203
194
  var _raycaster$intersectO = raycaster.intersectObjects(five.scene.children, true),
204
- _raycaster$intersectO2 = (0, _slicedToArray2["default"])(_raycaster$intersectO, 1),
195
+ _raycaster$intersectO2 = _slicedToArray(_raycaster$intersectO, 1),
205
196
  intersect = _raycaster$intersectO2[0];
206
197
  if (!!intersect && /^video/.test(intersect.object.name)) {
207
198
  if (state.videoTexture) setMuted(!state.videoTexture.image.muted);
@@ -222,7 +213,7 @@ var ModelTVVideoPlugin = exports.ModelTVVideoPlugin = function ModelTVVideoPlugi
222
213
  vector = vector.clone().sub(cameraPosition).normalize();
223
214
  var raycaster = new THREE.Raycaster(cameraPosition, vector);
224
215
  var _raycaster$intersectO3 = raycaster.intersectObjects(five.scene.children, true),
225
- _raycaster$intersectO4 = (0, _slicedToArray2["default"])(_raycaster$intersectO3, 1),
216
+ _raycaster$intersectO4 = _slicedToArray(_raycaster$intersectO3, 1),
226
217
  intersect = _raycaster$intersectO4[0];
227
218
  return !!intersect && /^video/.test(intersect.object.name);
228
219
  }).length >= 2;
package/lib/index.js CHANGED
@@ -1,12 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "Player", {
7
- enumerable: true,
8
- get: function get() {
9
- return _Player.Player;
10
- }
11
- });
12
- var _Player = require("./Player");
1
+ export { Player } from "./Player/index.js";
@@ -1,10 +1,33 @@
1
1
  import * as React from 'react';
2
2
  import { PlayerConfigs } from '../Player/typings';
3
3
  import { VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit';
4
+ /**
5
+ * VreoProvider 组件的属性接口
6
+ */
4
7
  export interface VreoProviderProps {
8
+ /** 播放器配置选项 */
5
9
  configs?: Partial<PlayerConfigs>;
10
+ /** 子组件 */
6
11
  children?: React.ReactNode;
7
12
  }
13
+ /**
14
+ * Vreo 播放器 Provider 组件
15
+ *
16
+ * 为子组件提供 Vreo 播放器实例的 React Context Provider。
17
+ * 必须在 Five Provider 内部使用。
18
+ *
19
+ * @param props - 组件属性
20
+ * @returns React.FC 组件
21
+ *
22
+ * @example
23
+ * ```tsx
24
+ * <FiveProvider>
25
+ * <VreoProvider configs={{ autoPreload: true }}>
26
+ * <YourComponent />
27
+ * </VreoProvider>
28
+ * </FiveProvider>
29
+ * ```
30
+ */
8
31
  export declare const VreoProvider: React.FC<VreoProviderProps>;
9
32
  /**
10
33
  * VreoPlayer 命令集合。
@@ -39,6 +62,35 @@ export interface VreoActionCallbacks {
39
62
  */
40
63
  dispose: () => void;
41
64
  }
65
+ /**
66
+ * 获取 Vreo 播放器操作函数集合
67
+ *
68
+ * 返回一组经过优化的播放器操作函数,这些函数已经绑定了当前播放器实例。
69
+ * 使用 useCallback 进行性能优化,避免不必要的重新渲染。
70
+ *
71
+ * @returns VreoActionCallbacks 操作函数集合
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * function PlayerControls() {
76
+ * const { load, play, pause, show, hide, dispose } = useVreoAction()
77
+ *
78
+ * const handleLoadScript = async () => {
79
+ * await load(vreoUnit, 0)
80
+ * play()
81
+ * }
82
+ *
83
+ * return (
84
+ * <div>
85
+ * <button onClick={handleLoadScript}>加载并播放</button>
86
+ * <button onClick={pause}>暂停</button>
87
+ * <button onClick={() => show()}>显示</button>
88
+ * <button onClick={() => hide()}>隐藏</button>
89
+ * </div>
90
+ * )
91
+ * }
92
+ * ```
93
+ */
42
94
  export declare function useVreoAction(): {
43
95
  load: (vreoUnit: VreoUnit, currentTime?: number) => Promise<boolean>;
44
96
  pause: () => void;
@@ -47,5 +99,64 @@ export declare function useVreoAction(): {
47
99
  hide: () => void;
48
100
  dispose: () => void;
49
101
  };
102
+ /**
103
+ * 监听 Vreo 播放器事件
104
+ *
105
+ * 用于注册和清理 Vreo 播放器事件监听器的 React Hook。
106
+ * 当组件卸载或依赖项变化时自动清理事件监听器。
107
+ *
108
+ * @param name - 事件名称
109
+ * @param callback - 事件回调函数
110
+ * @param deps - 依赖项数组(可选)
111
+ *
112
+ * @example
113
+ * ```tsx
114
+ * function EventListener() {
115
+ * const [keyframes, setKeyframes] = React.useState([])
116
+ *
117
+ * // 监听关键帧事件
118
+ * useVreoEventCallback('CameraMovement', (keyframe) => {
119
+ * console.log('相机运镜:', keyframe)
120
+ * })
121
+ *
122
+ * // 监听播放状态变化
123
+ * useVreoEventCallback('playing', () => {
124
+ * console.log('开始播放')
125
+ * }, [])
126
+ *
127
+ * return <div>事件监听组件</div>
128
+ * }
129
+ * ```
130
+ */
50
131
  export declare function useVreoEventCallback<T extends keyof VreoKeyframeEvent>(name: T, callback: VreoKeyframeEvent[T], deps?: React.DependencyList | undefined): void;
132
+ /**
133
+ * 获取播放器暂停状态
134
+ *
135
+ * 返回当前播放器的暂停状态,并自动响应播放状态变化。
136
+ * 当播放器开始播放或暂停时,状态会自动更新。
137
+ *
138
+ * @returns boolean 是否处于暂停状态
139
+ *
140
+ * @example
141
+ * ```tsx
142
+ * function PlayButton() {
143
+ * const isPaused = useVreoPausedState()
144
+ * const { play, pause } = useVreoAction()
145
+ *
146
+ * const handleToggle = () => {
147
+ * if (isPaused) {
148
+ * play()
149
+ * } else {
150
+ * pause()
151
+ * }
152
+ * }
153
+ *
154
+ * return (
155
+ * <button onClick={handleToggle}>
156
+ * {isPaused ? '播放' : '暂停'}
157
+ * </button>
158
+ * )
159
+ * }
160
+ * ```
161
+ */
51
162
  export declare function useVreoPausedState(): boolean;
@@ -1,29 +1,40 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.VreoProvider = void 0;
9
- exports.useVreoAction = useVreoAction;
10
- exports.useVreoEventCallback = useVreoEventCallback;
11
- exports.useVreoPausedState = useVreoPausedState;
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _react = require("@realsee/five/react");
14
- var React = _interopRequireWildcard(require("react"));
15
- var _Player = require("../Player");
16
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) { "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); } return f; })(e, t); }
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import { unsafe__useFiveInstance } from '@realsee/five/react';
3
+ import * as React from 'react';
4
+ import { Player } from "../Player/index.js";
17
5
  var VreoContext = /*#__PURE__*/React.createContext(null);
18
- var VreoProvider = exports.VreoProvider = function VreoProvider(props) {
19
- var five = (0, _react.unsafe__useFiveInstance)();
6
+
7
+ /**
8
+ * VreoProvider 组件的属性接口
9
+ */
10
+
11
+ /**
12
+ * Vreo 播放器 Provider 组件
13
+ *
14
+ * 为子组件提供 Vreo 播放器实例的 React Context Provider。
15
+ * 必须在 Five Provider 内部使用。
16
+ *
17
+ * @param props - 组件属性
18
+ * @returns React.FC 组件
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * <FiveProvider>
23
+ * <VreoProvider configs={{ autoPreload: true }}>
24
+ * <YourComponent />
25
+ * </VreoProvider>
26
+ * </FiveProvider>
27
+ * ```
28
+ */
29
+ export var VreoProvider = function VreoProvider(props) {
30
+ var five = unsafe__useFiveInstance();
20
31
  var _React$useState = React.useState(null),
21
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
32
+ _React$useState2 = _slicedToArray(_React$useState, 2),
22
33
  player = _React$useState2[0],
23
34
  setPlayer = _React$useState2[1];
24
35
  var playerRef = React.useRef(null);
25
36
  React.useEffect(function () {
26
- playerRef.current = new _Player.Player(five, props.configs || {});
37
+ playerRef.current = new Player(five, props.configs || {});
27
38
  setPlayer(playerRef.current);
28
39
  return function () {
29
40
  var _playerRef$current;
@@ -35,6 +46,29 @@ var VreoProvider = exports.VreoProvider = function VreoProvider(props) {
35
46
  value: player
36
47
  }, props.children);
37
48
  };
49
+
50
+ /**
51
+ * 获取 Vreo 播放器实例
52
+ *
53
+ * 从 React Context 中获取当前的 Vreo 播放器实例。
54
+ * 必须在 VreoProvider 内部使用。
55
+ *
56
+ * @returns Player 播放器实例
57
+ * @throws 如果未找到 VreoProvider 则抛出错误
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * function MyComponent() {
62
+ * const player = useVreoInstance()
63
+ *
64
+ * const handleLoad = () => {
65
+ * player.load(vreoUnit)
66
+ * }
67
+ *
68
+ * return <button onClick={handleLoad}>Load Script</button>
69
+ * }
70
+ * ```
71
+ */
38
72
  function useVreoInstance() {
39
73
  var context = React.useContext(VreoContext);
40
74
  if (!context) {
@@ -47,7 +81,36 @@ function useVreoInstance() {
47
81
  * VreoPlayer 命令集合。
48
82
  */
49
83
 
50
- function useVreoAction() {
84
+ /**
85
+ * 获取 Vreo 播放器操作函数集合
86
+ *
87
+ * 返回一组经过优化的播放器操作函数,这些函数已经绑定了当前播放器实例。
88
+ * 使用 useCallback 进行性能优化,避免不必要的重新渲染。
89
+ *
90
+ * @returns VreoActionCallbacks 操作函数集合
91
+ *
92
+ * @example
93
+ * ```tsx
94
+ * function PlayerControls() {
95
+ * const { load, play, pause, show, hide, dispose } = useVreoAction()
96
+ *
97
+ * const handleLoadScript = async () => {
98
+ * await load(vreoUnit, 0)
99
+ * play()
100
+ * }
101
+ *
102
+ * return (
103
+ * <div>
104
+ * <button onClick={handleLoadScript}>加载并播放</button>
105
+ * <button onClick={pause}>暂停</button>
106
+ * <button onClick={() => show()}>显示</button>
107
+ * <button onClick={() => hide()}>隐藏</button>
108
+ * </div>
109
+ * )
110
+ * }
111
+ * ```
112
+ */
113
+ export function useVreoAction() {
51
114
  var player = useVreoInstance();
52
115
  var load = React.useCallback(function (vreoUnit, currentTime) {
53
116
  return player.load(vreoUnit, currentTime);
@@ -76,7 +139,37 @@ function useVreoAction() {
76
139
  dispose: dispose
77
140
  };
78
141
  }
79
- function useVreoEventCallback(name, callback, deps) {
142
+
143
+ /**
144
+ * 监听 Vreo 播放器事件
145
+ *
146
+ * 用于注册和清理 Vreo 播放器事件监听器的 React Hook。
147
+ * 当组件卸载或依赖项变化时自动清理事件监听器。
148
+ *
149
+ * @param name - 事件名称
150
+ * @param callback - 事件回调函数
151
+ * @param deps - 依赖项数组(可选)
152
+ *
153
+ * @example
154
+ * ```tsx
155
+ * function EventListener() {
156
+ * const [keyframes, setKeyframes] = React.useState([])
157
+ *
158
+ * // 监听关键帧事件
159
+ * useVreoEventCallback('CameraMovement', (keyframe) => {
160
+ * console.log('相机运镜:', keyframe)
161
+ * })
162
+ *
163
+ * // 监听播放状态变化
164
+ * useVreoEventCallback('playing', () => {
165
+ * console.log('开始播放')
166
+ * }, [])
167
+ *
168
+ * return <div>事件监听组件</div>
169
+ * }
170
+ * ```
171
+ */
172
+ export function useVreoEventCallback(name, callback, deps) {
80
173
  var player = useVreoInstance();
81
174
  var dependencyList = [player, name];
82
175
  if (deps !== undefined) {
@@ -91,10 +184,41 @@ function useVreoEventCallback(name, callback, deps) {
91
184
  };
92
185
  }, dependencyList);
93
186
  }
94
- function useVreoPausedState() {
187
+
188
+ /**
189
+ * 获取播放器暂停状态
190
+ *
191
+ * 返回当前播放器的暂停状态,并自动响应播放状态变化。
192
+ * 当播放器开始播放或暂停时,状态会自动更新。
193
+ *
194
+ * @returns boolean 是否处于暂停状态
195
+ *
196
+ * @example
197
+ * ```tsx
198
+ * function PlayButton() {
199
+ * const isPaused = useVreoPausedState()
200
+ * const { play, pause } = useVreoAction()
201
+ *
202
+ * const handleToggle = () => {
203
+ * if (isPaused) {
204
+ * play()
205
+ * } else {
206
+ * pause()
207
+ * }
208
+ * }
209
+ *
210
+ * return (
211
+ * <button onClick={handleToggle}>
212
+ * {isPaused ? '播放' : '暂停'}
213
+ * </button>
214
+ * )
215
+ * }
216
+ * ```
217
+ */
218
+ export function useVreoPausedState() {
95
219
  var player = useVreoInstance();
96
220
  var _React$useState3 = React.useState(player.paused),
97
- _React$useState4 = (0, _slicedToArray2["default"])(_React$useState3, 2),
221
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
98
222
  state = _React$useState4[0],
99
223
  setState = _React$useState4[1];
100
224
  useVreoEventCallback('paused', function () {
@@ -1,32 +1,22 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.audioList = void 0;
8
- exports.generateBlankAudio = generateBlankAudio;
9
- exports.getAudio = getAudio;
10
- exports.waitForBlankAudioGenerated = waitForBlankAudioGenerated;
11
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
18
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
22
- function _createSuper(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = (0, _getPrototypeOf2["default"])(t); if (r) { var s = (0, _getPrototypeOf2["default"])(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return (0, _possibleConstructorReturn2["default"])(this, e); }; }
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(t) { var r = _isNativeReflectConstruct(); return function () { var e, o = _getPrototypeOf(t); if (r) { var s = _getPrototypeOf(this).constructor; e = Reflect.construct(o, arguments, s); } else e = o.apply(this, arguments); return _possibleConstructorReturn(this, e); }; }
23
13
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
24
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=';
25
15
  // 下面这段空音频居然在11pro和xr上播不出来
26
16
  // const blankAudioSrc = 'data:audio/mpeg;base64,//AAAAHGZ0eXBNNEEgAAAAAE00QSBpc29tbXA0MgAAAAFtZGF0AAAAAAAAABwA0AAHANAABwDQAAcAAAM+bW9vdgAAAGxtdmhkAAAAAN+jti7fo7YuAACsRAAADAAAAQAAAQAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAdB0cmFrAAAAXHRraGQAAAAB36O2Lt+jti4AAAABAAAAAAAADAAAAAAAAAAAAAAAAAABAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAFsbWRpYQAAACBtZGhkAAAAAN+jti7fo7YuAACsRAAADABVxAAAAAAAMWhkbHIAAAAAAAAAAHNvdW4AAAAAAAAAAAAAAABDb3JlIE1lZGlhIEF1ZGlvAAAAARNtaW5mAAAAEHNtaGQAAAAAAAAAAAAAACRkaW5mAAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAAANdzdGJsAAAAZ3N0c2QAAAAAAAAAAQAAAFdtcDRhAAAAAAAAAAEAAAAAAAAAAAACABAAAAAArEQAAAAAADNlc2RzAAAAAAOAgIAiAAAABICAgBRAFAAYAAAA+gAAAPoABYCAgAISCAaAgIABAgAAABhzdHRzAAAAAAAAAAEAAAADAAAEAAAAABxzdHNjAAAAAAAAAAEAAAABAAAAAwAAAAEAAAAgc3RzegAAAAAAAAAAAAAAAwAAAAQAAAAEAAAABAAAABRzdGNvAAAAAAAAAAEAAAAsAAAA+nVkdGEAAADybWV0YQAAAAAAAAAiaGRscgAAAAAAAAAAbWRpcgAAAAAAAAAAAAAAAAAAAAAAxGlsc3QAAAC8LS0tLQAAABxtZWFuAAAAAGNvbS5hcHBsZS5pVHVuZXMAAAAUbmFtZQAAAABpVHVuU01QQgAAAIRkYXRhAAAAAQAAAAAgMDAwMDAwMDAgMDAwMDA4NDAgMDAwMDAzQzAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMCAwMDAwMDAwMA=='
27
17
 
28
- var audioList = exports.audioList = [];
29
- function getAudio(src) {
18
+ export var audioList = [];
19
+ export function getAudio(src) {
30
20
  var audio = audioList.find(function (audio) {
31
21
  return !audio.realSrc || audio.realSrc === blankAudioSrc;
32
22
  });
@@ -40,17 +30,17 @@ function getAudio(src) {
40
30
  }
41
31
  return audio;
42
32
  }
43
- function waitForBlankAudioGenerated() {
33
+ export function waitForBlankAudioGenerated() {
44
34
  return _waitForBlankAudioGenerated.apply(this, arguments);
45
35
  }
46
36
  function _waitForBlankAudioGenerated() {
47
- _waitForBlankAudioGenerated = (0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
37
+ _waitForBlankAudioGenerated = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
48
38
  var checkInterval,
49
39
  timeout,
50
40
  startTime,
51
41
  isTimedOut,
52
42
  _args = arguments;
53
- return _regenerator["default"].wrap(function _callee$(_context) {
43
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
54
44
  while (1) {
55
45
  switch (_context.prev = _context.next) {
56
46
  case 0:
@@ -92,7 +82,7 @@ function _waitForBlankAudioGenerated() {
92
82
  }));
93
83
  return _waitForBlankAudioGenerated.apply(this, arguments);
94
84
  }
95
- function generateBlankAudio(length) {
85
+ export function generateBlankAudio(length) {
96
86
  // 判断一下已经生成几个了,防止重复生成
97
87
  var generateLength = length - audioList.length;
98
88
  if (generateLength <= 0) return;
@@ -111,21 +101,21 @@ function initAudio(audio) {
111
101
  }
112
102
  }
113
103
  var IAudio = /*#__PURE__*/function (_Audio) {
114
- (0, _inherits2["default"])(IAudio, _Audio);
104
+ _inherits(IAudio, _Audio);
115
105
  var _super = _createSuper(IAudio);
116
106
  function IAudio(src) {
117
107
  var _thisSuper, _this;
118
- (0, _classCallCheck2["default"])(this, IAudio);
108
+ _classCallCheck(this, IAudio);
119
109
  _this = _super.call(this, src);
120
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "preload", 'auto');
121
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "realSrc", '');
122
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "inited", false);
110
+ _defineProperty(_assertThisInitialized(_this), "preload", 'auto');
111
+ _defineProperty(_assertThisInitialized(_this), "realSrc", '');
112
+ _defineProperty(_assertThisInitialized(_this), "inited", false);
123
113
  _this.realSrc = src !== null && src !== void 0 ? src : '';
124
- (0, _get2["default"])((_thisSuper = (0, _assertThisInitialized2["default"])(_this), (0, _getPrototypeOf2["default"])(IAudio.prototype)), "addEventListener", _thisSuper).call(_thisSuper, 'ended', function () {
114
+ _get((_thisSuper = _assertThisInitialized(_this), _getPrototypeOf(IAudio.prototype)), "addEventListener", _thisSuper).call(_thisSuper, 'ended', function () {
125
115
  _this.src = '';
126
116
  });
127
117
  var init = function init() {
128
- return initAudio((0, _assertThisInitialized2["default"])(_this));
118
+ return initAudio(_assertThisInitialized(_this));
129
119
  };
130
120
  document.addEventListener('click', init);
131
121
  document.addEventListener('touchend', init);
@@ -135,7 +125,7 @@ var IAudio = /*#__PURE__*/function (_Audio) {
135
125
  };
136
126
  return _this;
137
127
  }
138
- (0, _createClass2["default"])(IAudio, [{
128
+ _createClass(IAudio, [{
139
129
  key: "src",
140
130
  get:
141
131
  /**
@@ -156,4 +146,4 @@ var IAudio = /*#__PURE__*/function (_Audio) {
156
146
  }
157
147
  }]);
158
148
  return IAudio;
159
- }(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(Audio));
149
+ }(/*#__PURE__*/_wrapNativeSuper(Audio));