@realsee/vreo 2.6.4 → 3.0.0-webgpu.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/README.md +6 -6
  2. package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
  3. package/lib/PlayController/createHTMLAudioElement.d.ts.map +1 -0
  4. package/lib/PlayController/index.d.ts +14 -24
  5. package/lib/PlayController/index.d.ts.map +1 -0
  6. package/lib/PlayController/index.js +74 -220
  7. package/lib/PlayController/index.js.map +1 -0
  8. package/lib/Player/App.d.ts +2 -2
  9. package/lib/Player/App.d.ts.map +1 -0
  10. package/lib/Player/Controller.d.ts +11 -6
  11. package/lib/Player/Controller.d.ts.map +1 -0
  12. package/lib/Player/PlaybackLifecycle.d.ts +1 -0
  13. package/lib/Player/PlaybackLifecycle.d.ts.map +1 -0
  14. package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
  15. package/lib/Player/custom/SpatialScenePanel/index.d.ts.map +1 -0
  16. package/lib/Player/hooks.d.ts +3 -2
  17. package/lib/Player/hooks.d.ts.map +1 -0
  18. package/lib/Player/index.d.ts +3 -2
  19. package/lib/Player/index.d.ts.map +1 -0
  20. package/lib/Player/index.js +1770 -437
  21. package/lib/Player/index.js.map +1 -0
  22. package/lib/Player/modules/Drawer/index.d.ts +2 -2
  23. package/lib/Player/modules/Drawer/index.d.ts.map +1 -0
  24. package/lib/Player/modules/PopUp/index.d.ts +2 -2
  25. package/lib/Player/modules/PopUp/index.d.ts.map +1 -0
  26. package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
  27. package/lib/Player/modules/ResizeObserver/index.d.ts.map +1 -0
  28. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +5 -2
  29. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts.map +1 -0
  30. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +8 -5
  31. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts.map +1 -0
  32. package/lib/Player/modules/VideoAgent/index.d.ts +11 -2
  33. package/lib/Player/modules/VideoAgent/index.d.ts.map +1 -0
  34. package/lib/Player/modules/Wave/index.d.ts +2 -2
  35. package/lib/Player/modules/Wave/index.d.ts.map +1 -0
  36. package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
  37. package/lib/Player/modules/keyframes/BgMusic/index.d.ts.map +1 -0
  38. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
  39. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts.map +1 -0
  40. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
  41. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts.map +1 -0
  42. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
  43. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts.map +1 -0
  44. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
  45. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts.map +1 -0
  46. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts +3 -2
  47. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts.map +1 -0
  48. package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -0
  49. package/lib/Player/modules/keyframes/PanoTag/index.d.ts.map +1 -0
  50. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
  51. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts.map +1 -0
  52. package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
  53. package/lib/Player/modules/keyframes/Prompter/index.d.ts.map +1 -0
  54. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
  55. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts.map +1 -0
  56. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
  57. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts.map +1 -0
  58. package/lib/Player/playback-types.d.ts +1 -0
  59. package/lib/Player/playback-types.d.ts.map +1 -0
  60. package/lib/Player/typings.d.ts +2 -1
  61. package/lib/Player/typings.d.ts.map +1 -0
  62. package/lib/chunks/index-BgPSzRSs.js +93 -0
  63. package/lib/chunks/index-BgPSzRSs.js.map +1 -0
  64. package/lib/chunks/index-CunyJn6H.js +51 -0
  65. package/lib/chunks/index-CunyJn6H.js.map +1 -0
  66. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts +2 -1
  67. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts.map +1 -0
  68. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts +5 -6
  69. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts.map +1 -0
  70. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts +1 -0
  71. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts.map +1 -0
  72. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +5 -22
  73. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts.map +1 -0
  74. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts +2 -1
  75. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts.map +1 -0
  76. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts +2 -1
  77. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts.map +1 -0
  78. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +2 -1
  79. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts.map +1 -0
  80. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts +2 -1
  81. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts.map +1 -0
  82. package/lib/index.d.ts +3 -0
  83. package/lib/index.d.ts.map +1 -0
  84. package/lib/index.js +12 -1
  85. package/lib/index.js.map +1 -0
  86. package/lib/plugins/CSS3DRenderPlugin.js +115 -0
  87. package/lib/plugins/CSS3DRenderPlugin.js.map +1 -0
  88. package/lib/plugins/CameraMovementPlugin.js +6 -0
  89. package/lib/plugins/CameraMovementPlugin.js.map +1 -0
  90. package/lib/plugins/ModelTVVideoPlugin.js +162 -0
  91. package/lib/plugins/ModelTVVideoPlugin.js.map +1 -0
  92. package/lib/react/index.d.ts +5 -4
  93. package/lib/react/index.d.ts.map +1 -0
  94. package/lib/react/index.js +39 -226
  95. package/lib/react/index.js.map +1 -0
  96. package/lib/shared-utils/Audio.d.ts +3 -1
  97. package/lib/shared-utils/Audio.d.ts.map +1 -0
  98. package/lib/shared-utils/AudioLike.d.ts +2 -1
  99. package/lib/shared-utils/AudioLike.d.ts.map +1 -0
  100. package/lib/shared-utils/Preloader.d.ts +1 -0
  101. package/lib/shared-utils/Preloader.d.ts.map +1 -0
  102. package/lib/shared-utils/addResizeListener.d.ts +2 -1
  103. package/lib/shared-utils/addResizeListener.d.ts.map +1 -0
  104. package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -0
  105. package/lib/shared-utils/animationFrame/BetterTween.d.ts.map +1 -0
  106. package/lib/shared-utils/animationFrame/index.d.ts +5 -14
  107. package/lib/shared-utils/animationFrame/index.d.ts.map +1 -0
  108. package/lib/shared-utils/animationFrame/tween.d.ts +1 -0
  109. package/lib/shared-utils/animationFrame/tween.d.ts.map +1 -0
  110. package/lib/shared-utils/createTransMatrix.d.ts +3 -1
  111. package/lib/shared-utils/createTransMatrix.d.ts.map +1 -0
  112. package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
  113. package/lib/shared-utils/getFileExpandedName.d.ts.map +1 -0
  114. package/lib/shared-utils/getMediaInfo.d.ts +1 -0
  115. package/lib/shared-utils/getMediaInfo.d.ts.map +1 -0
  116. package/lib/shared-utils/setElementDataset.d.ts +1 -0
  117. package/lib/shared-utils/setElementDataset.d.ts.map +1 -0
  118. package/lib/timeline/index.d.ts +18 -0
  119. package/lib/timeline/index.d.ts.map +1 -0
  120. package/lib/types/index.js +10 -0
  121. package/lib/types/index.js.map +1 -0
  122. package/lib/typings/VreoUnit.d.ts +2 -1
  123. package/lib/typings/VreoUnit.d.ts.map +1 -0
  124. package/lib/typings/index.d.ts +1 -0
  125. package/lib/typings/index.d.ts.map +1 -0
  126. package/package.json +51 -71
  127. package/lib/PlayController/createHTMLAudioElement.js +0 -34
  128. package/lib/Player/App.js +0 -52
  129. package/lib/Player/Controller.js +0 -536
  130. package/lib/Player/PlaybackLifecycle.js +0 -118
  131. package/lib/Player/custom/SpatialScenePanel/index.js +0 -240
  132. package/lib/Player/hooks.js +0 -22
  133. package/lib/Player/modules/Drawer/index.js +0 -40
  134. package/lib/Player/modules/PopUp/index.js +0 -23
  135. package/lib/Player/modules/ResizeObserver/index.js +0 -22
  136. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +0 -456
  137. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +0 -53
  138. package/lib/Player/modules/VideoAgent/index.js +0 -72
  139. package/lib/Player/modules/Wave/index.js +0 -171
  140. package/lib/Player/modules/keyframes/BgMusic/index.js +0 -65
  141. package/lib/Player/modules/keyframes/CameraMovement/index.js +0 -75
  142. package/lib/Player/modules/keyframes/InfoPanel/index.js +0 -170
  143. package/lib/Player/modules/keyframes/ModelVideo/index.js +0 -128
  144. package/lib/Player/modules/keyframes/PanoEffect/index.js +0 -99
  145. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -30
  146. package/lib/Player/modules/keyframes/PanoTag/index.js +0 -110
  147. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -122
  148. package/lib/Player/modules/keyframes/Prompter/index.js +0 -56
  149. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +0 -98
  150. package/lib/Player/modules/keyframes/VideoEffect/index.js +0 -154
  151. package/lib/Player/playback-types.js +0 -1
  152. package/lib/Player/typings.js +0 -1
  153. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -4
  154. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -25
  155. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -4
  156. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +0 -226
  157. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +0 -8
  158. package/lib/fivePlugins/CameraMovementPlugin/index.js +0 -245
  159. package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -15
  160. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +0 -349
  161. package/lib/shared-utils/Audio.js +0 -151
  162. package/lib/shared-utils/AudioLike.js +0 -123
  163. package/lib/shared-utils/Preloader.js +0 -37
  164. package/lib/shared-utils/addResizeListener.js +0 -39
  165. package/lib/shared-utils/animationFrame/BetterTween.js +0 -58
  166. package/lib/shared-utils/animationFrame/index.js +0 -52
  167. package/lib/shared-utils/animationFrame/tween.js +0 -58
  168. package/lib/shared-utils/createTransMatrix.js +0 -12
  169. package/lib/shared-utils/getFileExpandedName.js +0 -6
  170. package/lib/shared-utils/getMediaInfo.js +0 -55
  171. package/lib/shared-utils/setElementDataset.js +0 -16
  172. package/lib/typings/VreoUnit.js +0 -64
  173. package/lib/typings/index.js +0 -1
package/README.md CHANGED
@@ -31,12 +31,12 @@
31
31
 
32
32
  ```css
33
33
  /* @file xxx.css */
34
- @import '@realsee/vreo/stylesheets/default.css';
34
+ @import '@realsee/vreo/styles/default.css';
35
35
  ```
36
36
  或
37
37
  ```jsx
38
38
  /* @file xxx.tsx | xxx.jsx */
39
- import '@realsee/vreo/stylesheets/default.css';
39
+ import '@realsee/vreo/styles/default.css';
40
40
  ```
41
41
  examples:
42
42
  ```tsx
@@ -44,7 +44,7 @@ examples:
44
44
  import * as React from 'react'
45
45
  import { Five } from '@realsee/five'
46
46
  import { Player } from '@realsee/vreo'
47
- import '@realsee/vreo/stylesheets/default.css';
47
+ import '@realsee/vreo/styles/default.css';
48
48
 
49
49
  // 创建 Five 实例
50
50
  const five = new Five({
@@ -75,10 +75,10 @@ vreoPlayer.pause()
75
75
  /* @file App.tsx */
76
76
 
77
77
  import * as React from 'react'
78
- import * as ReactDOM from 'react-dom'
78
+ import { createRoot } from 'react-dom/client'
79
79
  import { Five, Work, parseWork } from '@realsee/five'
80
80
  import { createFiveProvider, FiveCanvas } from '@realsee/five/react'
81
- import { VreoProvider, useVreoAction } from '@realsee/vreo/lib/react'
81
+ import { VreoProvider, useVreoAction } from '@realsee/vreo/react'
82
82
 
83
83
  // 创建 FiveProvider
84
84
  const FiveProvider = createFiveProvider({
@@ -120,7 +120,7 @@ const App: React.FC = () => {
120
120
  )
121
121
  }
122
122
 
123
- ReactDOM.render(<App></App>, document.getElementById('app'))
123
+ createRoot(document.getElementById('app')!).render(<App />)
124
124
  ```
125
125
 
126
126
  ## 剧本数据结构
@@ -1 +1,2 @@
1
1
  export declare function createHTMLAudioElement(): HTMLAudioElement;
2
+ //# sourceMappingURL=createHTMLAudioElement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createHTMLAudioElement.d.ts","sourceRoot":"","sources":["../../resources/PlayController/createHTMLAudioElement.ts"],"names":[],"mappings":"AAmCA,wBAAgB,sBAAsB,IAAI,gBAAgB,CAWzD"}
@@ -1,38 +1,28 @@
1
- import { Subscribe } from '@realsee/five';
2
- import { VreoKeyframe, VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit';
1
+ import { Subscribe } from '@realsee/five-webgpu';
2
+ import { VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit';
3
3
  export interface PlayControllerConfig {
4
4
  audio?: HTMLAudioElement;
5
5
  }
6
6
  export declare class PlayController extends Subscribe<VreoKeyframeEvent> {
7
7
  vreoUnit?: VreoUnit;
8
- config: PlayControllerConfig;
9
- stopInterval: () => void;
8
+ readonly config: PlayControllerConfig;
9
+ private readonly timeline;
10
+ private readonly ownsAudio;
11
+ private readonly stopInterval;
12
+ private playPromise?;
13
+ private disposed;
14
+ private readonly onPlaying;
15
+ private readonly onPaused;
16
+ private readonly onEnded;
10
17
  get paused(): boolean;
11
18
  get audioInstance(): HTMLAudioElement;
12
19
  get currentTime(): number;
13
- get currentKeyframes(): VreoKeyframe[];
14
- /**
15
- * 音频时长 不一定能获取得到,建议以 VreoUnit 配置的时长为准。
16
- */
20
+ get currentKeyframes(): import("..").VreoKeyframe[];
17
21
  get duration(): number;
18
22
  constructor(config?: PlayControllerConfig);
19
- /**
20
- * 载入数据
21
- */
22
23
  load(vreoUnit: VreoUnit): Promise<boolean>;
23
- /**
24
- * 播放
25
- */
26
- play(): Promise<void>;
27
- /**
28
- * 暂停
29
- */
24
+ play(): Promise<boolean>;
30
25
  pause(): Promise<void>;
31
- /**
32
- * 销毁资源
33
- * @notice 一旦销毁,创建的实例将不可用:需重新创建实例。
34
- *
35
- * @deprecated **慎重执行**
36
- */
37
26
  dispose(): void;
38
27
  }
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../resources/PlayController/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGhD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGjE,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,qBAAa,cAAe,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IAC9D,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAA;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAY;IACzC,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAQ;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4B;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAE1D,IAAI,MAAM,YAAuC;IACjD,IAAI,aAAa,qBAAgC;IACjD,IAAI,WAAW,WAAmD;IAClE,IAAI,gBAAgB,gCAAuD;IAC3E,IAAI,QAAQ,WAAgD;gBAEhD,MAAM,GAAE,oBAAyB;IAmBvC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAoB1C,IAAI;IAOJ,KAAK;IASX,OAAO;CAWR"}
@@ -1,223 +1,77 @@
1
- import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
- import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/esm/createClass";
4
- import _assertThisInitialized from "@babel/runtime/helpers/esm/assertThisInitialized";
5
- import _inherits from "@babel/runtime/helpers/esm/inherits";
6
- import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
7
- import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
8
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
9
- import _regeneratorRuntime from "@babel/runtime/regenerator";
10
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
- 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; } }
12
- import { Subscribe } from '@realsee/five';
13
- import { requestAnimationFrameInterval } from "../shared-utils/animationFrame/index.js";
14
- import { createHTMLAudioElement } from "./createHTMLAudioElement.js";
15
- var closures = {};
16
- export var PlayController = /*#__PURE__*/function (_Subscribe) {
17
- _inherits(PlayController, _Subscribe);
18
- var _super = _createSuper(PlayController);
19
- function PlayController() {
20
- var _this;
21
- var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
22
- _classCallCheck(this, PlayController);
23
- _this = _super.call(this);
24
- _defineProperty(_assertThisInitialized(_this), "config", {});
25
- if (!config.audio) {
26
- config.audio = createHTMLAudioElement();
27
- }
28
- _this.config = Object.assign(_this.config, config);
29
- closures.onPlaying = function () {
30
- return _this.emit('playing');
31
- };
32
- closures.onPaused = function () {
33
- return _this.emit('paused');
34
- };
35
- closures.onEnded = function () {
36
- return _this.emit('paused', true);
37
- };
38
- _this.audioInstance.addEventListener('play', closures.onPlaying);
39
- _this.audioInstance.addEventListener('pause', closures.onPaused);
40
- _this.audioInstance.addEventListener('ended', closures.onEnded);
41
- _this.stopInterval = requestAnimationFrameInterval(function () {
42
- if (_this.audioInstance.paused) {
43
- return;
44
- }
45
- if (!_this.vreoUnit) {
46
- return;
47
- }
48
- var keyframes = _this.vreoUnit.keyframes;
49
- var currentTime = _this.currentTime;
50
- // 没有被解析过且开始时间低于当前时间戳 100ms
51
- var currentKeyframes = keyframes.filter(function (keyframe) {
52
- if (keyframe.parsed) return false;
53
- var dur = currentTime - keyframe.start;
54
- return dur <= 60 && dur >= 0;
55
- });
56
- currentKeyframes.forEach(function (keyframe) {
57
- if (keyframe.parsed) return;
58
- keyframe.parsed = true;
59
- _this.emit(keyframe.type, keyframe, _this.currentTime);
60
- });
1
+ var d = Object.defineProperty;
2
+ var u = (V, t, A) => t in V ? d(V, t, { enumerable: !0, configurable: !0, writable: !0, value: A }) : V[t] = A;
3
+ var e = (V, t, A) => u(V, typeof t != "symbol" ? t + "" : t, A);
4
+ import { Subscribe as h } from "@realsee/five-webgpu";
5
+ import { T as c, r as q } from "../chunks/index-CunyJn6H.js";
6
+ const m = "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=";
7
+ function l() {
8
+ const V = document.createElement("audio");
9
+ return V.style.display = "none", V.controls = !1, document.body.appendChild(V), V.src = m, V.play().catch(() => {
10
+ }), V;
11
+ }
12
+ class v extends h {
13
+ constructor(A = {}) {
14
+ super();
15
+ e(this, "vreoUnit");
16
+ e(this, "config");
17
+ e(this, "timeline", new c());
18
+ e(this, "ownsAudio");
19
+ e(this, "stopInterval");
20
+ e(this, "playPromise");
21
+ e(this, "disposed", !1);
22
+ e(this, "onPlaying", () => this.emit("playing"));
23
+ e(this, "onPaused", () => this.emit("paused"));
24
+ e(this, "onEnded", () => this.emit("paused", !0));
25
+ const i = A.audio ?? l();
26
+ this.ownsAudio = !A.audio, this.config = { ...A, audio: i }, i.addEventListener("play", this.onPlaying), i.addEventListener("pause", this.onPaused), i.addEventListener("ended", this.onEnded), this.stopInterval = q(() => {
27
+ if (i.paused) return;
28
+ const n = this.currentTime;
29
+ for (const s of this.timeline.take(n))
30
+ this.emit(s.type, s, n);
61
31
  });
62
- return _this;
63
32
  }
64
-
65
- /**
66
- * 载入数据
67
- */
68
- _createClass(PlayController, [{
69
- key: "paused",
70
- get: function get() {
71
- return this.audioInstance.paused;
72
- }
73
- }, {
74
- key: "audioInstance",
75
- get: function get() {
76
- return this.config.audio;
77
- }
78
- }, {
79
- key: "currentTime",
80
- get: function get() {
81
- return this.audioInstance.currentTime * 1000;
82
- }
83
- }, {
84
- key: "currentKeyframes",
85
- get: function get() {
86
- var _this2 = this;
87
- if (!this.vreoUnit) return [];
88
- var keyframes = this.vreoUnit.keyframes;
89
- // 没有被解析过且开始时间低于当前时间戳 100ms
90
- return keyframes.filter(function (keyframe) {
91
- if (keyframe.parsed) return false;
92
- var dur = _this2.currentTime - keyframe.start;
93
- return dur <= 100 && dur >= 0;
94
- });
95
- }
96
-
97
- /**
98
- * 音频时长 不一定能获取得到,建议以 VreoUnit 配置的时长为准。
99
- */
100
- }, {
101
- key: "duration",
102
- get: function get() {
103
- return this.audioInstance.duration * 1000;
104
- }
105
- }, {
106
- key: "load",
107
- value: function () {
108
- var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(vreoUnit) {
109
- var _this3 = this;
110
- return _regeneratorRuntime.wrap(function _callee$(_context) {
111
- while (1) {
112
- switch (_context.prev = _context.next) {
113
- case 0:
114
- this.vreoUnit = vreoUnit;
115
- _context.next = 3;
116
- return this.pause();
117
- case 3:
118
- _context.next = 5;
119
- return new Promise(function (resolve, reject) {
120
- if (vreoUnit.video.url === _this3.audioInstance.src) {
121
- return resolve(true);
122
- }
123
- _this3.audioInstance.src = vreoUnit.video.url;
124
- var canplaythrough = function canplaythrough() {
125
- resolve(true);
126
- _this3.audioInstance.removeEventListener('canplaythrough', canplaythrough);
127
- };
128
- var error = function error(err) {
129
- reject(err);
130
- _this3.audioInstance.removeEventListener('error', error);
131
- };
132
- _this3.audioInstance.addEventListener('canplaythrough', canplaythrough);
133
- _this3.audioInstance.addEventListener('error', error);
134
- });
135
- case 5:
136
- return _context.abrupt("return", _context.sent);
137
- case 6:
138
- case "end":
139
- return _context.stop();
140
- }
141
- }
142
- }, _callee, this);
143
- }));
144
- function load(_x) {
145
- return _load.apply(this, arguments);
146
- }
147
- return load;
148
- }()
149
- /**
150
- * 播放
151
- */
152
- }, {
153
- key: "play",
154
- value: function () {
155
- var _play = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
156
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
157
- while (1) {
158
- switch (_context2.prev = _context2.next) {
159
- case 0:
160
- closures.playPromise = this.audioInstance.play();
161
- case 1:
162
- case "end":
163
- return _context2.stop();
164
- }
165
- }
166
- }, _callee2, this);
167
- }));
168
- function play() {
169
- return _play.apply(this, arguments);
170
- }
171
- return play;
172
- }()
173
- /**
174
- * 暂停
175
- */
176
- }, {
177
- key: "pause",
178
- value: function () {
179
- var _pause = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
180
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
181
- while (1) {
182
- switch (_context3.prev = _context3.next) {
183
- case 0:
184
- if (!closures.playPromise) {
185
- _context3.next = 3;
186
- break;
187
- }
188
- _context3.next = 3;
189
- return closures.playPromise;
190
- case 3:
191
- this.audioInstance.pause();
192
- case 4:
193
- case "end":
194
- return _context3.stop();
195
- }
196
- }
197
- }, _callee3, this);
198
- }));
199
- function pause() {
200
- return _pause.apply(this, arguments);
201
- }
202
- return pause;
203
- }()
204
- /**
205
- * 销毁资源
206
- * @notice 一旦销毁,创建的实例将不可用:需重新创建实例。
207
- *
208
- * @deprecated **慎重执行**
209
- */
210
- }, {
211
- key: "dispose",
212
- value: function dispose() {
213
- // 清理事件监听
214
- this.audioInstance.removeEventListener('play', closures.onPlaying);
215
- this.audioInstance.removeEventListener('pasue', closures.onPaused);
216
- this.audioInstance.removeEventListener('ended', closures.onEnded);
217
- if (this.stopInterval) {
218
- this.stopInterval();
219
- }
33
+ get paused() {
34
+ return this.audioInstance.paused;
35
+ }
36
+ get audioInstance() {
37
+ return this.config.audio;
38
+ }
39
+ get currentTime() {
40
+ return this.audioInstance.currentTime * 1e3;
41
+ }
42
+ get currentKeyframes() {
43
+ return this.timeline.pendingAt(this.currentTime);
44
+ }
45
+ get duration() {
46
+ return this.audioInstance.duration * 1e3;
47
+ }
48
+ async load(A) {
49
+ return this.disposed ? !1 : (await this.pause(), this.vreoUnit = A, this.timeline.load(A.keyframes), A.video.url === this.audioInstance.src ? !0 : new Promise((i, n) => {
50
+ const s = () => {
51
+ this.audioInstance.removeEventListener("canplaythrough", a), this.audioInstance.removeEventListener("error", o);
52
+ }, a = () => {
53
+ s(), i(!0);
54
+ }, o = (r) => {
55
+ s(), n(r);
56
+ };
57
+ this.audioInstance.addEventListener("canplaythrough", a), this.audioInstance.addEventListener("error", o), this.audioInstance.src = A.video.url;
58
+ }));
59
+ }
60
+ async play() {
61
+ return this.disposed ? !1 : (this.playPromise = this.audioInstance.play(), await this.playPromise, !0);
62
+ }
63
+ async pause() {
64
+ try {
65
+ await this.playPromise;
66
+ } finally {
67
+ this.playPromise = void 0, this.audioInstance.pause();
220
68
  }
221
- }]);
222
- return PlayController;
223
- }(Subscribe);
69
+ }
70
+ dispose() {
71
+ this.disposed || (this.disposed = !0, this.stopInterval(), this.audioInstance.removeEventListener("play", this.onPlaying), this.audioInstance.removeEventListener("pause", this.onPaused), this.audioInstance.removeEventListener("ended", this.onEnded), this.audioInstance.pause(), this.ownsAudio && this.audioInstance.remove(), this.timeline.clear());
72
+ }
73
+ }
74
+ export {
75
+ v as PlayController
76
+ };
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../resources/PlayController/createHTMLAudioElement.ts","../../resources/PlayController/index.ts"],"sourcesContent":["\nconst BLANK_AUDIO = ''\n+ 'data:audio/mpeg;base64,'\n+ '//uQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAADAAAGhgBVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr///////////'\n+ '////////////////////////////////8AAAA5TEFNRTMuOThyAc0AAAAAAAAAABSAJAiqQgAAg'\n+ 'AAABobxtI73AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'\n+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'\n+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'\n+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'\n+ 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uQxAACFEII9ACZ/sJZwWEoEb8w/////N//////Jcxj'\n+ 'Hjf+7/v/H2PzCCFAiDtGeyBCIx7bJJ1mmEEMy6g8mm2c8nrGABB4h2Mkmn//4z/73u773R5qHHu'\n+ '/j/w7Kxkzh5lWRWdsifCkNAnY9Zc1HvDAhjhSHdFkHFzLmabt/AQxSg2wwzLhHIJOBnAWwVY4zr'\n+ 'hIYhhc2kvhYDfQ4hDi2Gmh5KyFn8EcGIrHAngNgIwVIEMf5bzbAiTRoAD///8z/KVhkkWEle6IX'\n+ '+d/z4fvH3BShK1e5kmjkCMoxVmXhd4ROlTKo3iipasvTilY21q19ta30/v/0/idPX1v8PNxJL6r'\n+ 'amnOVsdvMv2akO0iSYIzdJFirtzWXCZicS9vHqvSKyqm5XJBdqBwPxyfJdykhWTZ0G0ZyTZGpLK'\n+ 'xsNwwoRhsx3tZfhwmeOBVISm3impAC/IT/8hP/EKEM1KMdVdVKM2rHV4x7HVXZvbVVKN/qq8CiV'\n+ '9VL9jjH/6l6qf7MBCjZmOqsAibjcP+qqqv0oxqpa/NVW286hPo1nz2L/h8+jXt//uSxCmDU2IK/'\n+ 'ECN98KKtE5IYzNoCfbw+u9i5r8PoadUMFPKqWL4LK3T/LCraMSHGkW4bpLXR/E6LlHOVQxmslKV'\n+ 'J8IULktMN06N0FKCpHCoYsjC4F+Z0NVqdNFoGSTjSiyjzLdnZ2fNqTi2eHKONONKLMPMKLONKLM'\n+ 'PQRJGlFxZRoKcJFAYEeIFiRQkUWUeYfef//Ko04soswso40UJAgMw8wosososy0EalnZyjQUGBR'\n+ 'QGIFggOWUacWUeYmuadrZziQKKEgQsQLAhQkUJAgMQDghltLO1onp0cpkNInSFMqlYeSEJ5AHsq'\n+ 'FdOwy1DA2sRmRJKxdKRfLhfLw5BzUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVf/7ksRRA8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV'\n+ 'VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=';\n\n\nexport function createHTMLAudioElement(): HTMLAudioElement {\n const audio = document.createElement('audio')\n audio.style.display = 'none'\n audio.controls = false\n document.body.appendChild(audio)\n audio.src = BLANK_AUDIO\n\n // 触发一次播放\n void audio.play().catch(() => { /* Browser autoplay policy; the real play remains user-driven. */ })\n\n return audio\n}\n","import { Subscribe } from '@realsee/five-webgpu'\nimport { requestAnimationFrameInterval } from '../shared-utils/animationFrame'\nimport { Timeline } from '../timeline'\nimport { VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit'\nimport { createHTMLAudioElement } from './createHTMLAudioElement'\n\nexport interface PlayControllerConfig {\n audio?: HTMLAudioElement\n}\n\nexport class PlayController extends Subscribe<VreoKeyframeEvent> {\n vreoUnit?: VreoUnit\n readonly config: PlayControllerConfig\n private readonly timeline = new Timeline<VreoUnit['keyframes'][number]>()\n private readonly ownsAudio: boolean\n private readonly stopInterval: () => void\n private playPromise?: Promise<void>\n private disposed = false\n\n private readonly onPlaying = () => this.emit('playing')\n private readonly onPaused = () => this.emit('paused')\n private readonly onEnded = () => this.emit('paused', true)\n\n get paused() { return this.audioInstance.paused }\n get audioInstance() { return this.config.audio! }\n get currentTime() { return this.audioInstance.currentTime * 1000 }\n get currentKeyframes() { return this.timeline.pendingAt(this.currentTime) }\n get duration() { return this.audioInstance.duration * 1000 }\n\n constructor(config: PlayControllerConfig = {}) {\n super()\n const audio = config.audio ?? createHTMLAudioElement()\n this.ownsAudio = !config.audio\n this.config = { ...config, audio }\n\n audio.addEventListener('play', this.onPlaying)\n audio.addEventListener('pause', this.onPaused)\n audio.addEventListener('ended', this.onEnded)\n\n this.stopInterval = requestAnimationFrameInterval(() => {\n if (audio.paused) return\n const currentTime = this.currentTime\n for (const keyframe of this.timeline.take(currentTime)) {\n this.emit(keyframe.type, keyframe, currentTime)\n }\n })\n }\n\n async load(vreoUnit: VreoUnit): Promise<boolean> {\n if (this.disposed) return false\n await this.pause()\n this.vreoUnit = vreoUnit\n this.timeline.load(vreoUnit.keyframes)\n if (vreoUnit.video.url === this.audioInstance.src) return true\n\n return new Promise((resolve, reject) => {\n const clean = () => {\n this.audioInstance.removeEventListener('canplaythrough', ready)\n this.audioInstance.removeEventListener('error', error)\n }\n const ready = () => { clean(); resolve(true) }\n const error = (event: Event) => { clean(); reject(event) }\n this.audioInstance.addEventListener('canplaythrough', ready)\n this.audioInstance.addEventListener('error', error)\n this.audioInstance.src = vreoUnit.video.url\n })\n }\n\n async play() {\n if (this.disposed) return false\n this.playPromise = this.audioInstance.play()\n await this.playPromise\n return true\n }\n\n async pause() {\n try {\n await this.playPromise\n } finally {\n this.playPromise = undefined\n this.audioInstance.pause()\n }\n }\n\n dispose() {\n if (this.disposed) return\n this.disposed = true\n this.stopInterval()\n this.audioInstance.removeEventListener('play', this.onPlaying)\n this.audioInstance.removeEventListener('pause', this.onPaused)\n this.audioInstance.removeEventListener('ended', this.onEnded)\n this.audioInstance.pause()\n if (this.ownsAudio) this.audioInstance.remove()\n this.timeline.clear()\n }\n}\n"],"names":["BLANK_AUDIO","createHTMLAudioElement","audio","PlayController","Subscribe","config","__publicField","Timeline","requestAnimationFrameInterval","currentTime","keyframe","vreoUnit","resolve","reject","clean","ready","error","event"],"mappings":";;;;;AACA,MAAMA,IAAc;AAkCb,SAASC,IAA2C;AACzD,QAAMC,IAAQ,SAAS,cAAc,OAAO;AAC5C,SAAAA,EAAM,MAAM,UAAU,QACtBA,EAAM,WAAW,IACjB,SAAS,KAAK,YAAYA,CAAK,GAC/BA,EAAM,MAAMF,GAGPE,EAAM,OAAO,MAAM,MAAM;AAAA,EAAoE,CAAC,GAE5FA;AACT;ACpCO,MAAMC,UAAuBC,EAA6B;AAAA,EAmB/D,YAAYC,IAA+B,IAAI;AAC7C,UAAA;AAnBF,IAAAC,EAAA;AACS,IAAAA,EAAA;AACQ,IAAAA,EAAA,kBAAW,IAAIC,EAAA;AACf,IAAAD,EAAA;AACA,IAAAA,EAAA;AACT,IAAAA,EAAA;AACA,IAAAA,EAAA,kBAAW;AAEF,IAAAA,EAAA,mBAAY,MAAM,KAAK,KAAK,SAAS;AACrC,IAAAA,EAAA,kBAAW,MAAM,KAAK,KAAK,QAAQ;AACnC,IAAAA,EAAA,iBAAU,MAAM,KAAK,KAAK,UAAU,EAAI;AAUvD,UAAMJ,IAAQG,EAAO,SAASJ,EAAA;AAC9B,SAAK,YAAY,CAACI,EAAO,OACzB,KAAK,SAAS,EAAE,GAAGA,GAAQ,OAAAH,EAAA,GAE3BA,EAAM,iBAAiB,QAAQ,KAAK,SAAS,GAC7CA,EAAM,iBAAiB,SAAS,KAAK,QAAQ,GAC7CA,EAAM,iBAAiB,SAAS,KAAK,OAAO,GAE5C,KAAK,eAAeM,EAA8B,MAAM;AACtD,UAAIN,EAAM,OAAQ;AAClB,YAAMO,IAAc,KAAK;AACzB,iBAAWC,KAAY,KAAK,SAAS,KAAKD,CAAW;AACnD,aAAK,KAAKC,EAAS,MAAMA,GAAUD,CAAW;AAAA,IAElD,CAAC;AAAA,EACH;AAAA,EAvBA,IAAI,SAAS;AAAE,WAAO,KAAK,cAAc;AAAA,EAAO;AAAA,EAChD,IAAI,gBAAgB;AAAE,WAAO,KAAK,OAAO;AAAA,EAAO;AAAA,EAChD,IAAI,cAAc;AAAE,WAAO,KAAK,cAAc,cAAc;AAAA,EAAK;AAAA,EACjE,IAAI,mBAAmB;AAAE,WAAO,KAAK,SAAS,UAAU,KAAK,WAAW;AAAA,EAAE;AAAA,EAC1E,IAAI,WAAW;AAAE,WAAO,KAAK,cAAc,WAAW;AAAA,EAAK;AAAA,EAqB3D,MAAM,KAAKE,GAAsC;AAC/C,WAAI,KAAK,WAAiB,MAC1B,MAAM,KAAK,MAAA,GACX,KAAK,WAAWA,GAChB,KAAK,SAAS,KAAKA,EAAS,SAAS,GACjCA,EAAS,MAAM,QAAQ,KAAK,cAAc,MAAY,KAEnD,IAAI,QAAQ,CAACC,GAASC,MAAW;AACtC,YAAMC,IAAQ,MAAM;AAClB,aAAK,cAAc,oBAAoB,kBAAkBC,CAAK,GAC9D,KAAK,cAAc,oBAAoB,SAASC,CAAK;AAAA,MACvD,GACMD,IAAQ,MAAM;AAAE,QAAAD,EAAA,GAASF,EAAQ,EAAI;AAAA,MAAE,GACvCI,IAAQ,CAACC,MAAiB;AAAE,QAAAH,EAAA,GAASD,EAAOI,CAAK;AAAA,MAAE;AACzD,WAAK,cAAc,iBAAiB,kBAAkBF,CAAK,GAC3D,KAAK,cAAc,iBAAiB,SAASC,CAAK,GAClD,KAAK,cAAc,MAAML,EAAS,MAAM;AAAA,IAC1C,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,OAAO;AACX,WAAI,KAAK,WAAiB,MAC1B,KAAK,cAAc,KAAK,cAAc,KAAA,GACtC,MAAM,KAAK,aACJ;AAAA,EACT;AAAA,EAEA,MAAM,QAAQ;AACZ,QAAI;AACF,YAAM,KAAK;AAAA,IACb,UAAA;AACE,WAAK,cAAc,QACnB,KAAK,cAAc,MAAA;AAAA,IACrB;AAAA,EACF;AAAA,EAEA,UAAU;AACR,IAAI,KAAK,aACT,KAAK,WAAW,IAChB,KAAK,aAAA,GACL,KAAK,cAAc,oBAAoB,QAAQ,KAAK,SAAS,GAC7D,KAAK,cAAc,oBAAoB,SAAS,KAAK,QAAQ,GAC7D,KAAK,cAAc,oBAAoB,SAAS,KAAK,OAAO,GAC5D,KAAK,cAAc,MAAA,GACf,KAAK,aAAW,KAAK,cAAc,OAAA,GACvC,KAAK,SAAS,MAAA;AAAA,EAChB;AACF;"}
@@ -1,2 +1,2 @@
1
- import * as React from 'react';
2
- export declare function App(): React.JSX.Element;
1
+ export declare function App(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=App.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../resources/Player/App.tsx"],"names":[],"mappings":"AAkDA,wBAAgB,GAAG,4CAmBlB"}
@@ -1,5 +1,5 @@
1
1
  import { PlaybackLifecycle } from './PlaybackLifecycle';
2
- import { Five, Subscribe } from '@realsee/five';
2
+ import { Five, Subscribe } from '@realsee/five-webgpu';
3
3
  import * as React from 'react';
4
4
  import { VreoKeyframe, VreoKeyframeEnum, VreoKeyframeEvent, VreoUnit, VreoVideo } from '../typings/VreoUnit';
5
5
  import { VideoAgentScene } from './modules/VideoAgent/VideoAgentScene';
@@ -57,19 +57,19 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
57
57
  * @returns 'video' | 'avatar' | 'none' - 媒体类型
58
58
  */
59
59
  get agentType(): "none" | "video" | "avatar";
60
- popUp: string | JSX.Element | null;
60
+ popUp: string | React.ReactElement | null;
61
61
  /**
62
62
  * 打开或关闭弹窗
63
63
  * @param popUp - 弹窗内容,可以是字符串、JSX元素或false(关闭弹窗)
64
64
  */
65
- openPopUp(popUp: string | JSX.Element | false): void;
65
+ openPopUp(popUp: string | React.ReactElement | false): void;
66
66
  /**
67
67
  * 设置加载状态
68
68
  * @param loading - 加载状态:true(加载中)、false(加载完成)、null(加载失败)
69
69
  */
70
70
  setLoading(loading: boolean | null): void;
71
71
  drawerConfig: {
72
- content: string | JSX.Element;
72
+ content: string | React.ReactElement;
73
73
  height?: number | string;
74
74
  } | null;
75
75
  /**
@@ -113,7 +113,7 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
113
113
  * @param drawerConfig - 抽屉配置对象,false表示关闭抽屉
114
114
  */
115
115
  openDrawer(drawerConfig?: false | {
116
- content: string | JSX.Element;
116
+ content: string | React.ReactElement;
117
117
  height?: number | string;
118
118
  }): void;
119
119
  /**
@@ -127,6 +127,7 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
127
127
  private resuming;
128
128
  private disposers;
129
129
  readonly playback: PlaybackLifecycle;
130
+ private readonly timeline;
130
131
  constructor({ five, container, configs }: {
131
132
  five: Five;
132
133
  container: Element;
@@ -146,12 +147,15 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
146
147
  * 获取当前时间点应该触发的关键帧
147
148
  * @returns 当前应该执行的关键帧数组
148
149
  */
150
+ loadTimeline(keyframes: readonly VreoKeyframe[]): void;
151
+ seekTimeline(currentTime: number): void;
152
+ resetTimeline(type?: VreoKeyframeEnum): void;
149
153
  get currentKeyframes(): VreoKeyframe[];
150
154
  /**
151
155
  * 获取当前媒体实例(音频或视频元素)
152
156
  * @returns HTML媒体元素实例
153
157
  */
154
- get mediaInstance(): HTMLVideoElement | HTMLAudioElement | import("../shared-utils/AudioLike").AudioLike | undefined;
158
+ get mediaInstance(): import("../shared-utils/AudioLike").AudioLike | HTMLVideoElement | HTMLAudioElement | undefined;
155
159
  /**
156
160
  * 逐帧任务循环处理
157
161
  *
@@ -182,3 +186,4 @@ export declare class Controller extends Subscribe<VreoKeyframeEvent> {
182
186
  }
183
187
  declare const ControllerContext: React.Context<Controller | null>;
184
188
  export { ControllerContext };
189
+ //# sourceMappingURL=Controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controller.d.ts","sourceRoot":"","sources":["../../resources/Player/Controller.ts"],"names":[],"mappings":"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"}
@@ -23,3 +23,4 @@ export declare class PlaybackLifecycle {
23
23
  finish(): void;
24
24
  dispose(): void;
25
25
  }
26
+ //# sourceMappingURL=PlaybackLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlaybackLifecycle.d.ts","sourceRoot":"","sources":["../../resources/Player/PlaybackLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAE7G,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,eAAe,CAAA;IACvC,KAAK,IAAI,OAAO,CAAA;IAChB,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CAAA;CACjD;AAED,0FAA0F;AAC1F,qBAAa,iBAAiB;IAMsB,OAAO,CAAC,MAAM;IALhE,OAAO,CAAC,UAAU,CAAC,CAAoB;IACvC,OAAO,CAAC,GAAG,CAAC,CAAa;IACzB,OAAO,CAAC,UAAU,CAAI;IACtB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,OAAO,CAAwB;gBAC3B,OAAO,EAAE,eAAe,GAAG,SAAS,EAAU,MAAM,EAAE,MAAM,IAAI;IAG5E,IAAI,MAAM,YAAiC;IAC3C,OAAO;IACP,KAAK,CAAC,UAAU,EAAE,OAAO;IAczB,GAAG,CAAC,IAAI,EAAE,MAAM,IAAI;IACpB,OAAO,CAAC,IAAI;IAQZ,MAAM;IAKN,MAAM;IACN,OAAO;CAQR"}
@@ -1,4 +1,3 @@
1
- import * as React from 'react';
2
1
  import { CustomVreoKeyframeProps } from '../../typings';
3
2
  export interface SpatialScenePanelData {
4
3
  customType: 'SpatialScenePanel';
@@ -19,4 +18,5 @@ export interface SpatialScenePanelData {
19
18
  * 空间场景面板
20
19
  * @returns
21
20
  */
22
- export declare function SpatialScenePanel(props: CustomVreoKeyframeProps): React.JSX.Element;
21
+ export declare function SpatialScenePanel(props: CustomVreoKeyframeProps): import("react/jsx-runtime").JSX.Element;
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../resources/Player/custom/SpatialScenePanel/index.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AA2BvD,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,mBAAmB,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACb,EAAE,CAAA;IACH,QAAQ,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;CAC9C;AAsDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,uBAAuB,2CAkF/D"}
@@ -1,4 +1,5 @@
1
- import { Vector3 } from 'three';
1
+ import { Vector3 } from 'three/webgpu';
2
2
  export declare function useController(): import("./Controller").Controller;
3
- export declare function useFiveInstance(): import("@realsee/five").Five;
3
+ export declare function useFiveInstance(): import("@realsee/five-webgpu").Five;
4
4
  export declare function useFiveProject2d(): (vector: Vector3) => import("three").Vector2 | null;
5
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../resources/Player/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAGtC,wBAAgB,aAAa,sCAO5B;AAED,wBAAgB,eAAe,wCAO9B;AAED,wBAAgB,gBAAgB,aAEd,OAAO,oCACxB"}
@@ -1,4 +1,4 @@
1
- import { Five, Subscribe } from '@realsee/five';
1
+ import { Five, Subscribe } from '@realsee/five-webgpu';
2
2
  import { VreoKeyframeEvent, VreoUnit } from '../typings/VreoUnit';
3
3
  import { Appearance, PlayerConfigs } from './typings';
4
4
  /**
@@ -9,7 +9,7 @@ import { Appearance, PlayerConfigs } from './typings';
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
- * import { Five } from '@realsee/five'
12
+ * import { Five } from '@realsee/five-webgpu'
13
13
  * import { Player } from '@realsee/vreo'
14
14
  *
15
15
  * const five = new Five({
@@ -125,3 +125,4 @@ export declare class Player extends Subscribe<VreoKeyframeEvent> {
125
125
  dispose(): void;
126
126
  }
127
127
  export { SpatialScenePanel } from './custom/SpatialScenePanel';
128
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../resources/Player/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAItD,OAAO,EAAwC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGvG,OAAO,EAAE,UAAU,EAAE,aAAa,EAAkB,MAAM,WAAW,CAAA;AAerE;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,MAAO,SAAQ,SAAS,CAAC,iBAAiB,CAAC;IACpD,kBAAkB;IAClB,KAAK,EAAE,IAAI,CAAA;IACX,YAAY;IACZ,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,IAAI,CAAM;IAClB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,cAAc,CAAI;IAC1B,OAAO,CAAC,QAAQ,CAAQ;IACxB,eAAe;IACf,gBAAgB;IAChB,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAA;IAEhC;;;;;OAKG;gBACS,IAAI,EAAE,IAAI,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM;IA0E5D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,SAAI,EAAE,OAAO,UAAQ,EAAE,KAAK,UAAQ,EAAE,UAAU,UAAQ;IA4GlG;;;OAGG;IACH,IAAI,MAAM,YAET;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,UAAQ;IAiB7C;;;;;;;;;;OAUG;IACH,aAAa,CAAC,UAAU,EAAE,UAAU;IAIpC;;OAEG;IACH,KAAK;IAML;;OAEG;IACH,IAAI;IAIJ;;OAEG;IACH,IAAI;IAIJ;;;OAGG;IACH,cAAc;IAId;;;;OAIG;IACH,OAAO;CAWV;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA"}