@realsee/vreo 2.6.4-alpha.5 → 3.0.0-webgpu-react18.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +6 -6
  3. package/lib/PlayController/createHTMLAudioElement.d.ts +1 -0
  4. package/lib/PlayController/createHTMLAudioElement.d.ts.map +1 -0
  5. package/lib/PlayController/index.d.ts +14 -24
  6. package/lib/PlayController/index.d.ts.map +1 -0
  7. package/lib/PlayController/index.js +74 -210
  8. package/lib/PlayController/index.js.map +1 -0
  9. package/lib/Player/App.d.ts +2 -2
  10. package/lib/Player/App.d.ts.map +1 -0
  11. package/lib/Player/Controller.d.ts +11 -6
  12. package/lib/Player/Controller.d.ts.map +1 -0
  13. package/lib/Player/PlaybackLifecycle.d.ts +1 -0
  14. package/lib/Player/PlaybackLifecycle.d.ts.map +1 -0
  15. package/lib/Player/custom/SpatialScenePanel/index.d.ts +2 -2
  16. package/lib/Player/custom/SpatialScenePanel/index.d.ts.map +1 -0
  17. package/lib/Player/hooks.d.ts +3 -2
  18. package/lib/Player/hooks.d.ts.map +1 -0
  19. package/lib/Player/index.d.ts +3 -2
  20. package/lib/Player/index.d.ts.map +1 -0
  21. package/lib/Player/index.js +1769 -430
  22. package/lib/Player/index.js.map +1 -0
  23. package/lib/Player/modules/Drawer/index.d.ts +2 -2
  24. package/lib/Player/modules/Drawer/index.d.ts.map +1 -0
  25. package/lib/Player/modules/PopUp/index.d.ts +2 -2
  26. package/lib/Player/modules/PopUp/index.d.ts.map +1 -0
  27. package/lib/Player/modules/ResizeObserver/index.d.ts +2 -2
  28. package/lib/Player/modules/ResizeObserver/index.d.ts.map +1 -0
  29. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts +5 -2
  30. package/lib/Player/modules/VideoAgent/VideoAgentMesh.d.ts.map +1 -0
  31. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts +8 -5
  32. package/lib/Player/modules/VideoAgent/VideoAgentScene.d.ts.map +1 -0
  33. package/lib/Player/modules/VideoAgent/index.d.ts +11 -2
  34. package/lib/Player/modules/VideoAgent/index.d.ts.map +1 -0
  35. package/lib/Player/modules/Wave/index.d.ts +2 -2
  36. package/lib/Player/modules/Wave/index.d.ts.map +1 -0
  37. package/lib/Player/modules/keyframes/BgMusic/index.d.ts +2 -2
  38. package/lib/Player/modules/keyframes/BgMusic/index.d.ts.map +1 -0
  39. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts +2 -2
  40. package/lib/Player/modules/keyframes/CameraMovement/index.d.ts.map +1 -0
  41. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts +2 -2
  42. package/lib/Player/modules/keyframes/InfoPanel/index.d.ts.map +1 -0
  43. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts +2 -2
  44. package/lib/Player/modules/keyframes/ModelVideo/index.d.ts.map +1 -0
  45. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts +2 -2
  46. package/lib/Player/modules/keyframes/PanoEffect/index.d.ts.map +1 -0
  47. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts +3 -2
  48. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.d.ts.map +1 -0
  49. package/lib/Player/modules/keyframes/PanoTag/index.d.ts +1 -0
  50. package/lib/Player/modules/keyframes/PanoTag/index.d.ts.map +1 -0
  51. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts +2 -2
  52. package/lib/Player/modules/keyframes/PanoTextLabel/index.d.ts.map +1 -0
  53. package/lib/Player/modules/keyframes/Prompter/index.d.ts +2 -2
  54. package/lib/Player/modules/keyframes/Prompter/index.d.ts.map +1 -0
  55. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts +2 -2
  56. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.d.ts.map +1 -0
  57. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts +2 -2
  58. package/lib/Player/modules/keyframes/VideoEffect/index.d.ts.map +1 -0
  59. package/lib/Player/playback-types.d.ts +1 -0
  60. package/lib/Player/playback-types.d.ts.map +1 -0
  61. package/lib/Player/typings.d.ts +2 -1
  62. package/lib/Player/typings.d.ts.map +1 -0
  63. package/lib/chunks/index-BgPSzRSs.js +93 -0
  64. package/lib/chunks/index-BgPSzRSs.js.map +1 -0
  65. package/lib/chunks/index-CunyJn6H.js +51 -0
  66. package/lib/chunks/index-CunyJn6H.js.map +1 -0
  67. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts +2 -1
  68. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.d.ts.map +1 -0
  69. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts +5 -6
  70. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.d.ts.map +1 -0
  71. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts +1 -0
  72. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.d.ts.map +1 -0
  73. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts +5 -22
  74. package/lib/fivePlugins/CSS3DRenderPlugin/index.d.ts.map +1 -0
  75. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts +2 -1
  76. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.d.ts.map +1 -0
  77. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts +2 -1
  78. package/lib/fivePlugins/CameraMovementPlugin/index.d.ts.map +1 -0
  79. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts +2 -1
  80. package/lib/fivePlugins/CameraMovementPlugin/typings.d.ts.map +1 -0
  81. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts +2 -1
  82. package/lib/fivePlugins/ModelTVVideoPlugin/index.d.ts.map +1 -0
  83. package/lib/index.d.ts +3 -0
  84. package/lib/index.d.ts.map +1 -0
  85. package/lib/index.js +12 -1
  86. package/lib/index.js.map +1 -0
  87. package/lib/plugins/CSS3DRenderPlugin.js +115 -0
  88. package/lib/plugins/CSS3DRenderPlugin.js.map +1 -0
  89. package/lib/plugins/CameraMovementPlugin.js +6 -0
  90. package/lib/plugins/CameraMovementPlugin.js.map +1 -0
  91. package/lib/plugins/ModelTVVideoPlugin.js +162 -0
  92. package/lib/plugins/ModelTVVideoPlugin.js.map +1 -0
  93. package/lib/react/index.d.ts +5 -4
  94. package/lib/react/index.d.ts.map +1 -0
  95. package/lib/react/index.js +39 -226
  96. package/lib/react/index.js.map +1 -0
  97. package/lib/shared-utils/Audio.d.ts +3 -1
  98. package/lib/shared-utils/Audio.d.ts.map +1 -0
  99. package/lib/shared-utils/AudioLike.d.ts +2 -1
  100. package/lib/shared-utils/AudioLike.d.ts.map +1 -0
  101. package/lib/shared-utils/Preloader.d.ts +1 -0
  102. package/lib/shared-utils/Preloader.d.ts.map +1 -0
  103. package/lib/shared-utils/addResizeListener.d.ts +2 -1
  104. package/lib/shared-utils/addResizeListener.d.ts.map +1 -0
  105. package/lib/shared-utils/animationFrame/BetterTween.d.ts +1 -0
  106. package/lib/shared-utils/animationFrame/BetterTween.d.ts.map +1 -0
  107. package/lib/shared-utils/animationFrame/index.d.ts +5 -14
  108. package/lib/shared-utils/animationFrame/index.d.ts.map +1 -0
  109. package/lib/shared-utils/animationFrame/tween.d.ts +1 -0
  110. package/lib/shared-utils/animationFrame/tween.d.ts.map +1 -0
  111. package/lib/shared-utils/createTransMatrix.d.ts +3 -1
  112. package/lib/shared-utils/createTransMatrix.d.ts.map +1 -0
  113. package/lib/shared-utils/getFileExpandedName.d.ts +1 -0
  114. package/lib/shared-utils/getFileExpandedName.d.ts.map +1 -0
  115. package/lib/shared-utils/getMediaInfo.d.ts +1 -0
  116. package/lib/shared-utils/getMediaInfo.d.ts.map +1 -0
  117. package/lib/shared-utils/setElementDataset.d.ts +1 -0
  118. package/lib/shared-utils/setElementDataset.d.ts.map +1 -0
  119. package/lib/timeline/index.d.ts +18 -0
  120. package/lib/timeline/index.d.ts.map +1 -0
  121. package/lib/types/index.js +10 -0
  122. package/lib/types/index.js.map +1 -0
  123. package/lib/typings/VreoUnit.d.ts +2 -1
  124. package/lib/typings/VreoUnit.d.ts.map +1 -0
  125. package/lib/typings/index.d.ts +1 -0
  126. package/lib/typings/index.d.ts.map +1 -0
  127. package/package.json +51 -71
  128. package/lib/PlayController/createHTMLAudioElement.js +0 -30
  129. package/lib/Player/App.js +0 -52
  130. package/lib/Player/Controller.js +0 -530
  131. package/lib/Player/PlaybackLifecycle.js +0 -117
  132. package/lib/Player/custom/SpatialScenePanel/index.js +0 -263
  133. package/lib/Player/hooks.js +0 -22
  134. package/lib/Player/modules/Drawer/index.js +0 -39
  135. package/lib/Player/modules/PopUp/index.js +0 -23
  136. package/lib/Player/modules/ResizeObserver/index.js +0 -22
  137. package/lib/Player/modules/VideoAgent/VideoAgentMesh.js +0 -445
  138. package/lib/Player/modules/VideoAgent/VideoAgentScene.js +0 -53
  139. package/lib/Player/modules/VideoAgent/index.js +0 -72
  140. package/lib/Player/modules/Wave/index.js +0 -171
  141. package/lib/Player/modules/keyframes/BgMusic/index.js +0 -65
  142. package/lib/Player/modules/keyframes/CameraMovement/index.js +0 -73
  143. package/lib/Player/modules/keyframes/InfoPanel/index.js +0 -170
  144. package/lib/Player/modules/keyframes/ModelVideo/index.js +0 -126
  145. package/lib/Player/modules/keyframes/PanoEffect/index.js +0 -99
  146. package/lib/Player/modules/keyframes/PanoEffect/lineAnime.js +0 -30
  147. package/lib/Player/modules/keyframes/PanoTag/index.js +0 -110
  148. package/lib/Player/modules/keyframes/PanoTextLabel/index.js +0 -122
  149. package/lib/Player/modules/keyframes/Prompter/index.js +0 -56
  150. package/lib/Player/modules/keyframes/UpdateVRPanorama/index.js +0 -98
  151. package/lib/Player/modules/keyframes/VideoEffect/index.js +0 -152
  152. package/lib/Player/playback-types.js +0 -1
  153. package/lib/Player/typings.js +0 -1
  154. package/lib/fivePlugins/CSS3DRenderPlugin/centerPoint.js +0 -4
  155. package/lib/fivePlugins/CSS3DRenderPlugin/createResizeObserver.js +0 -25
  156. package/lib/fivePlugins/CSS3DRenderPlugin/evenNumber.js +0 -4
  157. package/lib/fivePlugins/CSS3DRenderPlugin/index.js +0 -226
  158. package/lib/fivePlugins/CSS3DRenderPlugin/transformPositionToVector3.js +0 -8
  159. package/lib/fivePlugins/CameraMovementPlugin/index.js +0 -238
  160. package/lib/fivePlugins/CameraMovementPlugin/typings.js +0 -15
  161. package/lib/fivePlugins/ModelTVVideoPlugin/index.js +0 -347
  162. package/lib/shared-utils/Audio.js +0 -147
  163. package/lib/shared-utils/AudioLike.js +0 -120
  164. package/lib/shared-utils/Preloader.js +0 -37
  165. package/lib/shared-utils/addResizeListener.js +0 -39
  166. package/lib/shared-utils/animationFrame/BetterTween.js +0 -56
  167. package/lib/shared-utils/animationFrame/index.js +0 -52
  168. package/lib/shared-utils/animationFrame/tween.js +0 -56
  169. package/lib/shared-utils/createTransMatrix.js +0 -12
  170. package/lib/shared-utils/getFileExpandedName.js +0 -6
  171. package/lib/shared-utils/getMediaInfo.js +0 -54
  172. package/lib/shared-utils/setElementDataset.js +0 -16
  173. package/lib/typings/VreoUnit.js +0 -171
  174. package/lib/typings/index.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,4 +1,11 @@
1
1
  # CHANGELOG
2
+
3
+ ## 2.6.4
4
+
5
+ - feat: 讲解支持应用侧 PlaybackManager,一段讲解共享播放任务,保留内部音轨混音。
6
+ - fix: 暂停、抢占和销毁同步停止成员媒体,取消延迟加载与关键帧,避免旧任务复播。
7
+ - chore: dnalogel peer/dev 依赖统一为正式版 3.81.10。
8
+
2
9
  # 2.0.0
3
10
  - fix: 重新实现了运镜功能,修复了运镜掉帧的问题
4
11
  - break-change:修复了模型态切换全景态时的目标点位为0时,有可能不会真正移动到目标位置的问题。该问题的修复会导致之前的一些基于此bug制作的导览出现问题,需要重新制作。
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,213 +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 _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
5
- import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
6
- import _inherits from "@babel/runtime/helpers/esm/inherits";
7
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
8
- function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
9
- function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
10
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
11
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
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
- function PlayController() {
18
- var _this;
19
- var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
- _classCallCheck(this, PlayController);
21
- _this = _callSuper(this, PlayController);
22
- _defineProperty(_this, "config", {});
23
- if (!config.audio) {
24
- config.audio = createHTMLAudioElement();
25
- }
26
- _this.config = Object.assign(_this.config, config);
27
- closures.onPlaying = function () {
28
- return _this.emit('playing');
29
- };
30
- closures.onPaused = function () {
31
- return _this.emit('paused');
32
- };
33
- closures.onEnded = function () {
34
- return _this.emit('paused', true);
35
- };
36
- _this.audioInstance.addEventListener('play', closures.onPlaying);
37
- _this.audioInstance.addEventListener('pause', closures.onPaused);
38
- _this.audioInstance.addEventListener('ended', closures.onEnded);
39
- _this.stopInterval = requestAnimationFrameInterval(function () {
40
- if (_this.audioInstance.paused) {
41
- return;
42
- }
43
- if (!_this.vreoUnit) {
44
- return;
45
- }
46
- var keyframes = _this.vreoUnit.keyframes;
47
- var currentTime = _this.currentTime;
48
- // 没有被解析过且开始时间低于当前时间戳 100ms
49
- var currentKeyframes = keyframes.filter(function (keyframe) {
50
- if (keyframe.parsed) return false;
51
- var dur = currentTime - keyframe.start;
52
- return dur <= 60 && dur >= 0;
53
- });
54
- currentKeyframes.forEach(function (keyframe) {
55
- if (keyframe.parsed) return;
56
- keyframe.parsed = true;
57
- _this.emit(keyframe.type, keyframe, _this.currentTime);
58
- });
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);
59
31
  });
60
- return _this;
61
32
  }
62
-
63
- /**
64
- * 载入数据
65
- */
66
- _inherits(PlayController, _Subscribe);
67
- return _createClass(PlayController, [{
68
- key: "paused",
69
- get: function get() {
70
- return this.audioInstance.paused;
71
- }
72
- }, {
73
- key: "audioInstance",
74
- get: function get() {
75
- return this.config.audio;
76
- }
77
- }, {
78
- key: "currentTime",
79
- get: function get() {
80
- return this.audioInstance.currentTime * 1000;
81
- }
82
- }, {
83
- key: "currentKeyframes",
84
- get: function get() {
85
- var _this2 = this;
86
- if (!this.vreoUnit) return [];
87
- var keyframes = this.vreoUnit.keyframes;
88
- // 没有被解析过且开始时间低于当前时间戳 100ms
89
- return keyframes.filter(function (keyframe) {
90
- if (keyframe.parsed) return false;
91
- var dur = _this2.currentTime - keyframe.start;
92
- return dur <= 100 && dur >= 0;
93
- });
94
- }
95
-
96
- /**
97
- * 音频时长 不一定能获取得到,建议以 VreoUnit 配置的时长为准。
98
- */
99
- }, {
100
- key: "duration",
101
- get: function get() {
102
- return this.audioInstance.duration * 1000;
103
- }
104
- }, {
105
- key: "load",
106
- value: (function () {
107
- var _load = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(vreoUnit) {
108
- var _this3 = this;
109
- return _regenerator().w(function (_context) {
110
- while (1) switch (_context.n) {
111
- case 0:
112
- this.vreoUnit = vreoUnit;
113
- _context.n = 1;
114
- return this.pause();
115
- case 1:
116
- _context.n = 2;
117
- return new Promise(function (resolve, reject) {
118
- if (vreoUnit.video.url === _this3.audioInstance.src) {
119
- return resolve(true);
120
- }
121
- _this3.audioInstance.src = vreoUnit.video.url;
122
- var _canplaythrough = function canplaythrough() {
123
- resolve(true);
124
- _this3.audioInstance.removeEventListener('canplaythrough', _canplaythrough);
125
- };
126
- var _error = function error(err) {
127
- reject(err);
128
- _this3.audioInstance.removeEventListener('error', _error);
129
- };
130
- _this3.audioInstance.addEventListener('canplaythrough', _canplaythrough);
131
- _this3.audioInstance.addEventListener('error', _error);
132
- });
133
- case 2:
134
- return _context.a(2, _context.v);
135
- }
136
- }, _callee, this);
137
- }));
138
- function load(_x) {
139
- return _load.apply(this, arguments);
140
- }
141
- return load;
142
- }()
143
- /**
144
- * 播放
145
- */
146
- )
147
- }, {
148
- key: "play",
149
- value: (function () {
150
- var _play = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
151
- return _regenerator().w(function (_context2) {
152
- while (1) switch (_context2.n) {
153
- case 0:
154
- closures.playPromise = this.audioInstance.play();
155
- case 1:
156
- return _context2.a(2);
157
- }
158
- }, _callee2, this);
159
- }));
160
- function play() {
161
- return _play.apply(this, arguments);
162
- }
163
- return play;
164
- }()
165
- /**
166
- * 暂停
167
- */
168
- )
169
- }, {
170
- key: "pause",
171
- value: (function () {
172
- var _pause = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3() {
173
- return _regenerator().w(function (_context3) {
174
- while (1) switch (_context3.n) {
175
- case 0:
176
- if (!closures.playPromise) {
177
- _context3.n = 1;
178
- break;
179
- }
180
- _context3.n = 1;
181
- return closures.playPromise;
182
- case 1:
183
- this.audioInstance.pause();
184
- case 2:
185
- return _context3.a(2);
186
- }
187
- }, _callee3, this);
188
- }));
189
- function pause() {
190
- return _pause.apply(this, arguments);
191
- }
192
- return pause;
193
- }()
194
- /**
195
- * 销毁资源
196
- * @notice 一旦销毁,创建的实例将不可用:需重新创建实例。
197
- *
198
- * @deprecated **慎重执行**
199
- */
200
- )
201
- }, {
202
- key: "dispose",
203
- value: function dispose() {
204
- // 清理事件监听
205
- this.audioInstance.removeEventListener('play', closures.onPlaying);
206
- this.audioInstance.removeEventListener('pasue', closures.onPaused);
207
- this.audioInstance.removeEventListener('ended', closures.onEnded);
208
- if (this.stopInterval) {
209
- this.stopInterval();
210
- }
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();
211
68
  }
212
- }]);
213
- }(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":"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"}
@@ -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"}