@needle-tools/engine 5.1.0-canary.deec6e4 → 5.1.0-canary.e6680fa

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 (326) hide show
  1. package/CHANGELOG.md +99 -1
  2. package/SKILL.md +4 -1
  3. package/components.needle.json +1 -1
  4. package/dist/needle-engine.bundle-Bl_hyH5G.umd.cjs +1734 -0
  5. package/dist/needle-engine.bundle-Cduc1gj6.min.js +1734 -0
  6. package/dist/{needle-engine.bundle-CvtELXh0.js → needle-engine.bundle-DNcqT8nJ.js} +19415 -18452
  7. package/dist/needle-engine.d.ts +1588 -374
  8. package/dist/needle-engine.js +572 -569
  9. package/dist/needle-engine.min.js +1 -1
  10. package/dist/needle-engine.umd.cjs +1 -1
  11. package/dist/three.js +1 -0
  12. package/dist/three.min.js +21 -21
  13. package/dist/three.umd.cjs +16 -16
  14. package/lib/engine/api.d.ts +8 -1
  15. package/lib/engine/api.js +7 -1
  16. package/lib/engine/api.js.map +1 -1
  17. package/lib/engine/codegen/register_types.js +10 -18
  18. package/lib/engine/codegen/register_types.js.map +1 -1
  19. package/lib/engine/engine_audio.d.ts +68 -0
  20. package/lib/engine/engine_audio.js +172 -0
  21. package/lib/engine/engine_audio.js.map +1 -1
  22. package/lib/engine/engine_camera.fit.js +16 -4
  23. package/lib/engine/engine_camera.fit.js.map +1 -1
  24. package/lib/engine/engine_components.js +1 -1
  25. package/lib/engine/engine_components.js.map +1 -1
  26. package/lib/engine/engine_context.d.ts +21 -8
  27. package/lib/engine/engine_context.js +46 -16
  28. package/lib/engine/engine_context.js.map +1 -1
  29. package/lib/engine/engine_context_eventbus.d.ts +47 -0
  30. package/lib/engine/engine_context_eventbus.js +47 -0
  31. package/lib/engine/engine_context_eventbus.js.map +1 -0
  32. package/lib/engine/engine_disposable.d.ts +172 -0
  33. package/lib/engine/engine_disposable.js +136 -0
  34. package/lib/engine/engine_disposable.js.map +1 -0
  35. package/lib/engine/engine_gameobject.d.ts +1 -10
  36. package/lib/engine/engine_gameobject.js +22 -120
  37. package/lib/engine/engine_gameobject.js.map +1 -1
  38. package/lib/engine/engine_gltf_builtin_components.js +7 -69
  39. package/lib/engine/engine_gltf_builtin_components.js.map +1 -1
  40. package/lib/engine/engine_init.js +7 -7
  41. package/lib/engine/engine_init.js.map +1 -1
  42. package/lib/engine/engine_input.d.ts +24 -5
  43. package/lib/engine/engine_input.js +3 -2
  44. package/lib/engine/engine_input.js.map +1 -1
  45. package/lib/engine/engine_instantiate_resolve.d.ts +42 -0
  46. package/lib/engine/engine_instantiate_resolve.js +372 -0
  47. package/lib/engine/engine_instantiate_resolve.js.map +1 -0
  48. package/lib/engine/engine_license.d.ts +7 -7
  49. package/lib/engine/engine_license.js +186 -58
  50. package/lib/engine/engine_license.js.map +1 -1
  51. package/lib/engine/engine_mainloop_utils.js +7 -4
  52. package/lib/engine/engine_mainloop_utils.js.map +1 -1
  53. package/lib/engine/engine_networking.d.ts +51 -37
  54. package/lib/engine/engine_networking.js +132 -82
  55. package/lib/engine/engine_networking.js.map +1 -1
  56. package/lib/engine/engine_networking.transport.websocket.d.ts +15 -0
  57. package/lib/engine/engine_networking.transport.websocket.js +38 -0
  58. package/lib/engine/engine_networking.transport.websocket.js.map +1 -0
  59. package/lib/engine/engine_networking_blob.js +4 -4
  60. package/lib/engine/engine_networking_blob.js.map +1 -1
  61. package/lib/engine/engine_networking_instantiate.js +2 -2
  62. package/lib/engine/engine_networking_instantiate.js.map +1 -1
  63. package/lib/engine/engine_networking_types.d.ts +39 -1
  64. package/lib/engine/engine_networking_types.js +7 -0
  65. package/lib/engine/engine_networking_types.js.map +1 -1
  66. package/lib/engine/engine_physics_rapier.d.ts +21 -3
  67. package/lib/engine/engine_physics_rapier.js +94 -25
  68. package/lib/engine/engine_physics_rapier.js.map +1 -1
  69. package/lib/engine/engine_pmrem.js +51 -3
  70. package/lib/engine/engine_pmrem.js.map +1 -1
  71. package/lib/engine/engine_scenedata.js +2 -2
  72. package/lib/engine/engine_scenedata.js.map +1 -1
  73. package/lib/engine/engine_serialization_builtin_serializer.js +28 -5
  74. package/lib/engine/engine_serialization_builtin_serializer.js.map +1 -1
  75. package/lib/engine/engine_serialization_core.d.ts +1 -0
  76. package/lib/engine/engine_serialization_core.js +7 -0
  77. package/lib/engine/engine_serialization_core.js.map +1 -1
  78. package/lib/engine/engine_types.d.ts +29 -11
  79. package/lib/engine/engine_types.js +1 -1
  80. package/lib/engine/engine_types.js.map +1 -1
  81. package/lib/engine/engine_util_decorator.js +7 -2
  82. package/lib/engine/engine_util_decorator.js.map +1 -1
  83. package/lib/engine/engine_utils.d.ts +1 -1
  84. package/lib/engine/engine_utils.js +19 -5
  85. package/lib/engine/engine_utils.js.map +1 -1
  86. package/lib/engine/engine_utils_format.js +20 -14
  87. package/lib/engine/engine_utils_format.js.map +1 -1
  88. package/lib/engine/engine_utils_qrcode.js +2 -2
  89. package/lib/engine/engine_utils_qrcode.js.map +1 -1
  90. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  91. package/lib/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js.map +1 -1
  92. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js +2 -2
  93. package/lib/engine/webcomponents/needle menu/needle-menu-spatial.js.map +1 -1
  94. package/lib/engine/webcomponents/needle menu/needle-menu.d.ts +1 -1
  95. package/lib/engine/webcomponents/needle menu/needle-menu.js +6 -6
  96. package/lib/engine/webcomponents/needle menu/needle-menu.js.map +1 -1
  97. package/lib/engine/webcomponents/needle-engine.d.ts +10 -4
  98. package/lib/engine/webcomponents/needle-engine.js +3 -3
  99. package/lib/engine/webcomponents/needle-engine.js.map +1 -1
  100. package/lib/engine/webcomponents/needle-engine.loading.js +2 -2
  101. package/lib/engine/webcomponents/needle-engine.loading.js.map +1 -1
  102. package/lib/engine/xr/NeedleXRSession.d.ts +3 -2
  103. package/lib/engine/xr/NeedleXRSession.js +50 -14
  104. package/lib/engine/xr/NeedleXRSession.js.map +1 -1
  105. package/lib/engine/xr/TempXRContext.js +2 -2
  106. package/lib/engine/xr/TempXRContext.js.map +1 -1
  107. package/lib/engine/xr/events.d.ts +1 -1
  108. package/lib/engine/xr/events.js.map +1 -1
  109. package/lib/engine-components/Animation.js +17 -16
  110. package/lib/engine-components/Animation.js.map +1 -1
  111. package/lib/engine-components/AnimationBuilder.d.ts +158 -0
  112. package/lib/engine-components/AnimationBuilder.js +305 -0
  113. package/lib/engine-components/AnimationBuilder.js.map +1 -0
  114. package/lib/engine-components/Animator.d.ts +6 -0
  115. package/lib/engine-components/Animator.js +23 -13
  116. package/lib/engine-components/Animator.js.map +1 -1
  117. package/lib/engine-components/AnimatorController.builder.d.ts +191 -0
  118. package/lib/engine-components/AnimatorController.builder.js +263 -0
  119. package/lib/engine-components/AnimatorController.builder.js.map +1 -0
  120. package/lib/engine-components/AnimatorController.d.ts +2 -119
  121. package/lib/engine-components/AnimatorController.js +33 -232
  122. package/lib/engine-components/AnimatorController.js.map +1 -1
  123. package/lib/engine-components/AudioSource.d.ts +19 -3
  124. package/lib/engine-components/AudioSource.js +121 -68
  125. package/lib/engine-components/AudioSource.js.map +1 -1
  126. package/lib/engine-components/Camera.d.ts +6 -1
  127. package/lib/engine-components/Camera.js +16 -3
  128. package/lib/engine-components/Camera.js.map +1 -1
  129. package/lib/engine-components/CameraUtils.js +14 -6
  130. package/lib/engine-components/CameraUtils.js.map +1 -1
  131. package/lib/engine-components/Collider.d.ts +18 -9
  132. package/lib/engine-components/Collider.js +61 -14
  133. package/lib/engine-components/Collider.js.map +1 -1
  134. package/lib/engine-components/Component.d.ts +72 -9
  135. package/lib/engine-components/Component.js +114 -10
  136. package/lib/engine-components/Component.js.map +1 -1
  137. package/lib/engine-components/ContactShadows.d.ts +1 -0
  138. package/lib/engine-components/ContactShadows.js +14 -1
  139. package/lib/engine-components/ContactShadows.js.map +1 -1
  140. package/lib/engine-components/DragControls.d.ts +7 -0
  141. package/lib/engine-components/DragControls.js +19 -7
  142. package/lib/engine-components/DragControls.js.map +1 -1
  143. package/lib/engine-components/DropListener.js +4 -0
  144. package/lib/engine-components/DropListener.js.map +1 -1
  145. package/lib/engine-components/EventList.d.ts +31 -9
  146. package/lib/engine-components/EventList.js +37 -76
  147. package/lib/engine-components/EventList.js.map +1 -1
  148. package/lib/engine-components/Joints.d.ts +4 -2
  149. package/lib/engine-components/Joints.js +19 -3
  150. package/lib/engine-components/Joints.js.map +1 -1
  151. package/lib/engine-components/Light.js +9 -1
  152. package/lib/engine-components/Light.js.map +1 -1
  153. package/lib/engine-components/Networking.d.ts +1 -1
  154. package/lib/engine-components/Networking.js +1 -1
  155. package/lib/engine-components/OrbitControls.d.ts +1 -2
  156. package/lib/engine-components/OrbitControls.js +37 -14
  157. package/lib/engine-components/OrbitControls.js.map +1 -1
  158. package/lib/engine-components/RigidBody.d.ts +12 -4
  159. package/lib/engine-components/RigidBody.js +18 -4
  160. package/lib/engine-components/RigidBody.js.map +1 -1
  161. package/lib/engine-components/SceneSwitcher.js +3 -0
  162. package/lib/engine-components/SceneSwitcher.js.map +1 -1
  163. package/lib/engine-components/SeeThrough.js +2 -2
  164. package/lib/engine-components/SeeThrough.js.map +1 -1
  165. package/lib/engine-components/VideoPlayer.d.ts +8 -2
  166. package/lib/engine-components/VideoPlayer.js +42 -19
  167. package/lib/engine-components/VideoPlayer.js.map +1 -1
  168. package/lib/engine-components/Voip.d.ts +16 -7
  169. package/lib/engine-components/Voip.js +90 -53
  170. package/lib/engine-components/Voip.js.map +1 -1
  171. package/lib/engine-components/api.d.ts +3 -1
  172. package/lib/engine-components/api.js +3 -1
  173. package/lib/engine-components/api.js.map +1 -1
  174. package/lib/engine-components/codegen/components.d.ts +7 -13
  175. package/lib/engine-components/codegen/components.js +7 -13
  176. package/lib/engine-components/codegen/components.js.map +1 -1
  177. package/lib/engine-components/export/usdz/USDZExporter.js +4 -4
  178. package/lib/engine-components/export/usdz/USDZExporter.js.map +1 -1
  179. package/lib/engine-components/postprocessing/Effects/Tonemapping.utils.d.ts +1 -1
  180. package/lib/engine-components/timeline/PlayableDirector.d.ts +21 -11
  181. package/lib/engine-components/timeline/PlayableDirector.js +75 -67
  182. package/lib/engine-components/timeline/PlayableDirector.js.map +1 -1
  183. package/lib/engine-components/timeline/SignalAsset.d.ts +3 -1
  184. package/lib/engine-components/timeline/SignalAsset.js +1 -0
  185. package/lib/engine-components/timeline/SignalAsset.js.map +1 -1
  186. package/lib/engine-components/timeline/TimelineBuilder.d.ts +413 -0
  187. package/lib/engine-components/timeline/TimelineBuilder.js +506 -0
  188. package/lib/engine-components/timeline/TimelineBuilder.js.map +1 -0
  189. package/lib/engine-components/timeline/TimelineModels.d.ts +2 -1
  190. package/lib/engine-components/timeline/TimelineModels.js +3 -0
  191. package/lib/engine-components/timeline/TimelineModels.js.map +1 -1
  192. package/lib/engine-components/timeline/TimelineTracks.d.ts +37 -6
  193. package/lib/engine-components/timeline/TimelineTracks.js +92 -26
  194. package/lib/engine-components/timeline/TimelineTracks.js.map +1 -1
  195. package/lib/engine-components/timeline/index.d.ts +2 -1
  196. package/lib/engine-components/timeline/index.js +2 -0
  197. package/lib/engine-components/timeline/index.js.map +1 -1
  198. package/lib/engine-components/ui/Canvas.d.ts +1 -1
  199. package/lib/engine-components/ui/Canvas.js +2 -8
  200. package/lib/engine-components/ui/Canvas.js.map +1 -1
  201. package/lib/engine-components/ui/Text.d.ts +1 -0
  202. package/lib/engine-components/ui/Text.js +10 -7
  203. package/lib/engine-components/ui/Text.js.map +1 -1
  204. package/lib/engine-components/web/CursorFollow.d.ts +0 -1
  205. package/lib/engine-components/web/CursorFollow.js +21 -13
  206. package/lib/engine-components/web/CursorFollow.js.map +1 -1
  207. package/lib/engine-components/webxr/WebXRImageTracking.d.ts +62 -1
  208. package/lib/engine-components/webxr/WebXRImageTracking.js +59 -2
  209. package/lib/engine-components/webxr/WebXRImageTracking.js.map +1 -1
  210. package/package.json +2 -83
  211. package/plugins/common/cloud.js +6 -1
  212. package/plugins/common/license.js +55 -12
  213. package/plugins/common/worker.js +9 -4
  214. package/plugins/types/userconfig.d.ts +4 -1
  215. package/plugins/vite/asap.js +17 -8
  216. package/plugins/vite/build-pipeline.js +57 -20
  217. package/plugins/vite/dependencies.js +29 -10
  218. package/plugins/vite/dependency-watcher.js +2 -2
  219. package/plugins/vite/editor-connection.js +3 -3
  220. package/plugins/vite/license.js +42 -7
  221. package/plugins/vite/local-files-core.js +3 -3
  222. package/plugins/vite/local-files-utils.d.ts +3 -1
  223. package/plugins/vite/local-files-utils.js +29 -5
  224. package/plugins/vite/reload.js +1 -1
  225. package/plugins/vite/server.js +2 -1
  226. package/src/engine/api.ts +11 -1
  227. package/src/engine/codegen/register_types.ts +10 -18
  228. package/src/engine/engine_audio.ts +184 -0
  229. package/src/engine/engine_camera.fit.ts +15 -4
  230. package/src/engine/engine_components.ts +1 -1
  231. package/src/engine/engine_context.ts +52 -19
  232. package/src/engine/engine_context_eventbus.ts +73 -0
  233. package/src/engine/engine_disposable.ts +214 -0
  234. package/src/engine/engine_gameobject.ts +54 -159
  235. package/src/engine/engine_gltf_builtin_components.ts +7 -76
  236. package/src/engine/engine_init.ts +7 -7
  237. package/src/engine/engine_input.ts +28 -7
  238. package/src/engine/engine_instantiate_resolve.ts +407 -0
  239. package/src/engine/engine_license.ts +202 -56
  240. package/src/engine/engine_mainloop_utils.ts +7 -4
  241. package/src/engine/engine_networking.transport.websocket.ts +45 -0
  242. package/src/engine/engine_networking.ts +161 -137
  243. package/src/engine/engine_networking_blob.ts +4 -4
  244. package/src/engine/engine_networking_instantiate.ts +2 -2
  245. package/src/engine/engine_networking_types.ts +41 -1
  246. package/src/engine/engine_physics_rapier.ts +102 -33
  247. package/src/engine/engine_pmrem.ts +53 -3
  248. package/src/engine/engine_scenedata.ts +3 -3
  249. package/src/engine/engine_serialization_builtin_serializer.ts +32 -9
  250. package/src/engine/engine_serialization_core.ts +9 -0
  251. package/src/engine/engine_types.ts +46 -27
  252. package/src/engine/engine_util_decorator.ts +7 -2
  253. package/src/engine/engine_utils.ts +16 -5
  254. package/src/engine/engine_utils_format.ts +20 -14
  255. package/src/engine/engine_utils_qrcode.ts +2 -2
  256. package/src/engine/physics/workers/mesh-bvh/GenerateMeshBVHWorker.js +1 -1
  257. package/src/engine/webcomponents/needle menu/needle-menu-spatial.ts +2 -2
  258. package/src/engine/webcomponents/needle menu/needle-menu.ts +6 -6
  259. package/src/engine/webcomponents/needle-engine.loading.ts +6 -6
  260. package/src/engine/webcomponents/needle-engine.ts +12 -6
  261. package/src/engine/xr/NeedleXRSession.ts +48 -13
  262. package/src/engine/xr/TempXRContext.ts +2 -2
  263. package/src/engine/xr/events.ts +1 -1
  264. package/src/engine-components/Animation.ts +19 -16
  265. package/src/engine-components/AnimationBuilder.ts +472 -0
  266. package/src/engine-components/Animator.ts +24 -12
  267. package/src/engine-components/AnimatorController.builder.ts +387 -0
  268. package/src/engine-components/AnimatorController.ts +20 -291
  269. package/src/engine-components/AudioSource.ts +130 -79
  270. package/src/engine-components/Camera.ts +16 -3
  271. package/src/engine-components/CameraUtils.ts +12 -5
  272. package/src/engine-components/Collider.ts +66 -18
  273. package/src/engine-components/Component.ts +118 -20
  274. package/src/engine-components/ContactShadows.ts +15 -1
  275. package/src/engine-components/DragControls.ts +18 -11
  276. package/src/engine-components/DropListener.ts +4 -0
  277. package/src/engine-components/EventList.ts +45 -83
  278. package/src/engine-components/Joints.ts +20 -4
  279. package/src/engine-components/Light.ts +10 -2
  280. package/src/engine-components/Networking.ts +1 -1
  281. package/src/engine-components/OrbitControls.ts +42 -16
  282. package/src/engine-components/RigidBody.ts +18 -4
  283. package/src/engine-components/SceneSwitcher.ts +3 -0
  284. package/src/engine-components/SeeThrough.ts +2 -2
  285. package/src/engine-components/VideoPlayer.ts +40 -17
  286. package/src/engine-components/Voip.ts +88 -53
  287. package/src/engine-components/api.ts +3 -1
  288. package/src/engine-components/codegen/components.ts +7 -13
  289. package/src/engine-components/export/usdz/USDZExporter.ts +4 -4
  290. package/src/engine-components/timeline/PlayableDirector.ts +83 -81
  291. package/src/engine-components/timeline/SignalAsset.ts +4 -1
  292. package/src/engine-components/timeline/TimelineBuilder.ts +824 -0
  293. package/src/engine-components/timeline/TimelineModels.ts +5 -1
  294. package/src/engine-components/timeline/TimelineTracks.ts +96 -27
  295. package/src/engine-components/timeline/index.ts +2 -1
  296. package/src/engine-components/ui/Canvas.ts +2 -8
  297. package/src/engine-components/ui/Text.ts +12 -8
  298. package/src/engine-components/web/CursorFollow.ts +21 -14
  299. package/src/engine-components/webxr/WebXRImageTracking.ts +79 -7
  300. package/dist/needle-engine.bundle-1s2gOoKZ.min.js +0 -1732
  301. package/dist/needle-engine.bundle-j4nGJXCs.umd.cjs +0 -1732
  302. package/lib/engine-components/AvatarLoader.d.ts +0 -80
  303. package/lib/engine-components/AvatarLoader.js +0 -232
  304. package/lib/engine-components/AvatarLoader.js.map +0 -1
  305. package/lib/engine-components/avatar/AvatarBlink_Simple.d.ts +0 -11
  306. package/lib/engine-components/avatar/AvatarBlink_Simple.js +0 -77
  307. package/lib/engine-components/avatar/AvatarBlink_Simple.js.map +0 -1
  308. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.d.ts +0 -14
  309. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js +0 -69
  310. package/lib/engine-components/avatar/AvatarEyeLook_Rotation.js.map +0 -1
  311. package/lib/engine-components/avatar/Avatar_Brain_LookAt.d.ts +0 -29
  312. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js +0 -122
  313. package/lib/engine-components/avatar/Avatar_Brain_LookAt.js.map +0 -1
  314. package/lib/engine-components/avatar/Avatar_MouthShapes.d.ts +0 -15
  315. package/lib/engine-components/avatar/Avatar_MouthShapes.js +0 -80
  316. package/lib/engine-components/avatar/Avatar_MouthShapes.js.map +0 -1
  317. package/lib/engine-components/avatar/Avatar_MustacheShake.d.ts +0 -9
  318. package/lib/engine-components/avatar/Avatar_MustacheShake.js +0 -30
  319. package/lib/engine-components/avatar/Avatar_MustacheShake.js.map +0 -1
  320. package/src/engine-components/AvatarLoader.ts +0 -264
  321. package/src/engine-components/avatar/AvatarBlink_Simple.ts +0 -70
  322. package/src/engine-components/avatar/AvatarEyeLook_Rotation.ts +0 -64
  323. package/src/engine-components/avatar/Avatar_Brain_LookAt.ts +0 -140
  324. package/src/engine-components/avatar/Avatar_MouthShapes.ts +0 -84
  325. package/src/engine-components/avatar/Avatar_MustacheShake.ts +0 -32
  326. package/src/vite-env.d.ts +0 -16
@@ -180,17 +180,15 @@ export class VideoPlayer extends Behaviour {
180
180
  */
181
181
  get isPlaying() {
182
182
  const video = this._videoElement;
183
- if (video) {
184
- if (video.currentTime > 0 && !video.paused && !video.ended
185
- && video.readyState > video.HAVE_CURRENT_DATA)
186
- return true;
187
- else if (video.srcObject) {
188
- const stream = video.srcObject;
189
- if (stream.active)
190
- return true;
191
- }
183
+ if (!video)
184
+ return false;
185
+ if (video.paused || video.ended)
186
+ return false;
187
+ if (video.srcObject) {
188
+ const stream = video.srcObject;
189
+ return stream.active;
192
190
  }
193
- return false;
191
+ return video.currentTime > 0 && video.readyState > video.HAVE_CURRENT_DATA;
194
192
  }
195
193
  get crossOrigin() {
196
194
  return this._videoElement?.crossOrigin ?? this._crossOrigin;
@@ -395,29 +393,55 @@ export class VideoPlayer extends Behaviour {
395
393
  }
396
394
  }
397
395
  _playErrors = 0;
398
- /** start playing the video source */
399
- play() {
396
+ /**
397
+ * Plays the assigned video clip, URL, or MediaStream.
398
+ * If a `clip` argument is passed, it is used as the new video source (mirroring {@link AudioSource.play}).
399
+ *
400
+ * @param clip - Optional video URL string or {@link MediaStream} to play. If omitted, plays the currently assigned source.
401
+ * @returns A promise that resolves to `true` when playback was successfully started, or `false` on error.
402
+ */
403
+ async play(clip) {
404
+ // Defensive: if called from an event handler with a non-string/non-MediaStream argument
405
+ // (e.g. SpatialTrigger.onEnter passes a receiver object), ignore the arg and fall back to the assigned source.
406
+ // Same pattern as AudioSource.play.
407
+ if (clip !== undefined && typeof clip !== "string" && !(clip instanceof MediaStream)) {
408
+ if (isDevEnvironment())
409
+ console.warn("[VideoPlayer] Called play with unknown argument type. Using assigned source instead.", clip);
410
+ clip = undefined;
411
+ }
412
+ if (typeof clip === "string") {
413
+ this.setClipURL(clip);
414
+ }
415
+ else if (clip instanceof MediaStream) {
416
+ this.setVideo(clip);
417
+ }
400
418
  if (!this._videoElement)
401
419
  this.create(false);
402
420
  if (!this._videoElement) {
403
421
  if (debug)
404
422
  console.warn("Can not play: no video element found", this);
405
- return;
423
+ return false;
406
424
  }
407
425
  if (this._isPlaying && !this._videoElement?.ended && !this._videoElement?.paused)
408
- return;
426
+ return true;
409
427
  this._isPlaying = true;
410
428
  if (!this._receivedInput)
411
429
  this._videoElement.muted = true;
412
430
  this.handleBeginPlaying(false);
413
431
  if (this.shouldUseM3U) {
414
432
  this.ensureM3UCanBePlayed();
415
- return;
433
+ return true;
416
434
  }
417
435
  if (debug)
418
436
  console.log("Video Play()", this.clip, this._videoElement, this.time);
419
437
  this._videoElement.currentTime = this.time;
420
- this._videoElement.play().catch(err => {
438
+ try {
439
+ await this._videoElement.play();
440
+ if (debug)
441
+ console.log("play", this._videoElement, this.time);
442
+ return true;
443
+ }
444
+ catch (err) {
421
445
  if (this._playErrors++ < 10)
422
446
  console.error(err);
423
447
  else if (this._playErrors === 10)
@@ -429,9 +453,8 @@ export class VideoPlayer extends Behaviour {
429
453
  if (this._isPlaying && !this.destroyed && this.activeAndEnabled)
430
454
  this.play();
431
455
  }, 1000);
432
- });
433
- if (debug)
434
- console.log("play", this._videoElement, this.time);
456
+ return false;
457
+ }
435
458
  }
436
459
  /**
437
460
  * Stop the video playback. This will reset the video to the beginning
@@ -1 +1 @@
1
- {"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../src/engine-components/VideoPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoPlayer.js","sourceRoot":"","sources":["../../src/engine-components/VideoPlayer.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAA4B,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1H,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,MAAM,KAAK,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;AAGrC,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,2CAAQ,CAAA;IACR,2DAAgB,CAAA;IAChB,yDAAe,CAAA;AACnB,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACnB,aAAa;IACb,oEAAoE;IACpE,cAAc;IACd,uDAAa,CAAA;IACb,aAAa;IACb,mEAAmE;IACnE,cAAc;IACd,2CAAO,CAAA;AACX,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,MAAM,CAAN,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC5B,+DAAQ,CAAA;IACR,6EAAe,CAAA;IACf,mEAAU,CAAA;IACV,qEAAW,CAAA;AACf,CAAC,EALW,oBAAoB,KAApB,oBAAoB,QAK/B;AAED,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,yEAAkB,CAAA;IAClB,2EAAmB,CAAA;IACnB,uEAAiB,CAAA;IACjB,6EAAoB,CAAA;AACxB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAEtC;;OAEG;IAEH,WAAW,GAAY,IAAI,CAAC;IAE5B;;OAEG;IAEH,UAAU,GAAe,UAAU,CAAC,IAAI,CAAC;IAEzC,MAAM;IACN,2EAA2E;IAC3E,0TAA0T;IAC1T,MAAM;IACN,kBAAkB;IAClB,iCAAiC;IAEjC,4CAA4C;IAC5C,gCAAgC;IAChC,4CAA4C;IAC5C,4BAA4B;IAC5B,QAAQ;IACR,IAAI;IAGI,IAAI,GAAiC,IAAI,CAAC;IAElD,kDAAkD;IAE1C,MAAM,GAAgB,WAAW,CAAC,GAAG,CAAC;IAE9C;;OAEG;IAEH,IAAI,GAAG,KAAK,OAAO,IAAI,CAAC,IAAI,CAAA,CAAC,CAAC;IAC9B;;OAEG;IACH,IAAI,GAAG,CAAC,GAAkB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC;QAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,OAAO,EAAE,CAAC;gBACV,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;;YACI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACzB,CAAC;IAEO,IAAI,GAAkB,IAAI,CAAC;IAG3B,UAAU,GAAoB,eAAe,CAAC,gBAAgB,CAAC;IAG/D,sBAAsB,CAAU;IAGhC,sBAAsB,CAAY;IAGlC,aAAa,CAAW;IAGxB,IAAI,GAAW,CAAC,CAAC;IAEjB,cAAc,GAAW,CAAC,CAAC;IACnC;;;OAGG;IAEH,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,aAAa,EAAE,YAAY,IAAI,IAAI,CAAC,cAAc,CAAC;IACnE,CAAC;IACD;;OAEG;IACH,IAAI,aAAa,CAAC,GAAW;QACzB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,GAAG,CAAC;IAC9C,CAAC;IAEO,UAAU,GAAY,KAAK,CAAC;IACpC,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;IACvD,CAAC;IAED,IAAI,SAAS,CAAC,GAAY;QACtB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,GAAG,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC;IACxD,CAAC;IACD;;OAEG;IACH,IAAI,WAAW,CAAC,GAAW;QACvB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,CAAC;QACzC,CAAC;;YACI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;QACjC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,SAAwB,CAAC;YAC9C,OAAO,MAAM,CAAC,MAAM,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAC/E,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;IAChE,CAAC;IACD,IAAI,WAAW,CAAC,GAAkB;QAC9B,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,GAAG,KAAK,IAAI;gBAAE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;;gBACjE,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAC3D,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI,aAAa;QACb,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACZ,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC9D,OAAO,IAAI,CAAC,aAAc,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,uBAAuB;QACnB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IACpD,CAAC;IACD;;OAEG;IACH,IAAI,KAAK,CAAC,GAAY;QAClB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,CAAC;IAC3D,CAAC;IACO,MAAM,GAAY,KAAK,CAAC;IAEhC;;OAEG;IACH,IAAI,YAAY;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAGD,IAAY,eAAe,CAAC,IAA0B;QAClD,IAAI,IAAI,KAAK,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,IAAI,KAAK,oBAAoB,CAAC,WAAW,IAAI,gBAAgB,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;YAC7I,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACtC,CAAC;IACL,CAAC;IACD,IAAY,eAAe,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACvD,gBAAgB,GAAyB,oBAAoB,CAAC,MAAM,CAAC;IAE7E;;MAEE;IACF,gBAAgB,GAAY,IAAI,CAAC;IAEzB,YAAY,GAAkB,WAAW,CAAC;IAE1C,aAAa,GAA4B,IAAI,CAAC;IAC9C,aAAa,GAAwB,IAAI,CAAC;IAC1C,cAAc,GAAoB,IAAI,CAAC;IAEvC,UAAU,GAAY,KAAK,CAAC;IAC5B,UAAU,GAAY,KAAK,CAAC;IAEpC,kFAAkF;IAClF,YAAY;QACR,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,uCAAuC;IACvC,OAAO,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;IAElC;0GACsG;IACtG,QAAQ,CAAC,KAAkB;QACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClD,CAAC;YACF,gFAAgF;YAChF,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC;YACrC,IAAI,IAAI,CAAC,UAAU;gBACf,IAAI,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;IACL,CAAC;IAED,UAAU,CAAC,GAAW;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG;YAAE,OAAO;QAC9B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC;QAE9B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClD,CAAC;YACF,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChC,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;gBAC7B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,IAAI,CAAC,IAAI,EAAE,CAAC;oBACZ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,QAAQ;QACJ,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QACnG,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aACI,CAAC;YACF,IAAI,CAAC,YAAY,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;;YACI,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,SAAS;QACL,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAEO,iBAAiB,GAAG,CAAC,CAAQ,EAAE,EAAE;QACrC,QAAQ,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC/B,KAAK,QAAQ;gBACT,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACzB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;oBAClC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;gBACD,MAAM;YACV,KAAK,SAAS;gBACV,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU;oBAAE,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrD,MAAM;QACd,CAAC;IACL,CAAC,CAAA;IAED,gBAAgB;IAChB,SAAS;QACL,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC9B,CAAC;IACL,CAAC;IAEO,cAAc,GAAY,KAAK,CAAC;IAExC;;OAEG;IACH;QACI,KAAK,EAAE,CAAC;QACR,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QAEzB,IAAI,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;gBACrC,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;oBAClB,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;gBACzC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,WAAW,GAAW,CAAC,CAAC;IAEhC;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,IAA2B;QAClC,wFAAwF;QACxF,+GAA+G;QAC/G,oCAAoC;QACpC,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC;YACnF,IAAI,gBAAgB,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,sFAAsF,EAAE,IAAI,CAAC,CAAC;YACnI,IAAI,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;aACI,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;YACtE,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9F,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;QAC1D,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QAChB,CAAC;QACD,OAAO,GAAQ,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBAC3C,IAAI,IAAI,CAAC,WAAW,KAAK,EAAE;gBAAE,OAAO,CAAC,KAAK,CAAC,6GAA6G,CAAC,CAAC;YAC/J,kEAAkE;YAClE,IAAI,KAAK;gBACL,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAChG,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,gBAAgB;oBAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAI;QACA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;QAC5B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC5D,CAAC;IAGD,yEAAyE;IACzE,MAAM,CAAC,iBAA0B;QAC7B,IAAI,GAAG,CAAC;QACR,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,WAAW,CAAC,SAAS;gBACtB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;gBAChB,MAAM;YACV,KAAK,WAAW,CAAC,GAAG;gBAChB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;gBACf,IAAI,CAAC,GAAG,EAAE,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;oBAC7C,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;gBACpB,MAAM;QACd,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;YACP,IAAI,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,KAAK;gBACL,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,UAAW,CAAC,UAAW,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjE,0EAA0E;YAC1E,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAC7C,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,CAAC;YAC7B,kHAAkH;YAClH,6EAA6E;YAC7E,mBAAmB;QACvB,CAAC;aACI,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;YACnD,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,GAAG,CAAC;QACvC,CAAC;QAGD,IAAI,CAAC,IAAI,CAAC,aAAa;YACnB,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,cAAc,CAAC;QAC/C,IAAI,iBAAiB;YACjB,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAAC;QAC/C,IAAI,KAAK;YACL,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY;QACR,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI;YAAE,OAAO;QAChD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACjD,CAAC;IAEO,QAAQ,GAAwB,IAAI,CAAC;IAE7C;;;OAGG;IACH,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,QAAQ,EAAE,OAAO,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,IAAI,WAAW,CAAC,GAAY;QACxB,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAChC,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC1C,CAAC;;YACI,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC;IACnD,CAAC;IAEO,cAAc,CAAkB;IAEhC,kBAAkB;QACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAqB,CAAC;QAClE,IAAI,IAAI,CAAC,YAAY;YACjB,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,kBAAkB,CAAC,iBAA0B;QACjD,IAAI,CAAC,IAAI,CAAC,gBAAgB;YAAE,OAAO;QACnC,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAEhC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/B,IAAI,MAAM,GAAyB,IAAI,CAAC,UAAU,CAAC;QAEnD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,eAAe,CAAC,gBAAgB;gBACjC,MAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,UAAU,CAAC;gBACjD,IAAI,CAAC,MAAM;oBAAE,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC;gBACrF,MAAM;YACV,KAAK,eAAe,CAAC,aAAa;gBAC9B,OAAO,CAAC,KAAK,CAAC,qFAAqF,CAAC,CAAC;gBACrG,OAAO;QACf,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,UAAW,CAAC,EAAE,IAAI,CAAC,CAAC;YAChH,OAAO;QACX,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/B,IAAI,GAAG,EAAE,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAEjC,IAAI,GAAG,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAC7C,CAAC;YAED,MAAM,SAAS,GAAG,KAAK,CAAC;YACxB,MAAM,aAAa,GAAG,IAAI,CAAC,cAAqB,CAAC;YAEjD,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC/B,IAAI,KAAK,IAAI,aAAa,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClD,OAAO,CAAC,IAAI,CAAC,wCAAwC,SAAS,+CAA+C,CAAC,CAAC;gBACnH,CAAC;gBACD,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;YAClD,CAAC;iBACI,CAAC;gBACF,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAClC;wBACI,IAAI,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,SAAS,EAAE,CAAC;4BACpE,OAAO,CAAC,IAAI,CAAC,wCAAwC,IAAI,CAAC,sBAAsB,+CAA+C,CAAC,CAAC;wBACrI,CAAC;wBACD,aAAa,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;wBAC9C,MAAM;oBACV,iBAAiB;oBACjB,0BAA0B;oBAC1B,uCAAuC;oBACvC,8DAA8D;oBAC9D,+EAA+E;oBAC/E,mEAAmE;oBACnE,aAAa;gBACjB,CAAC;YACL,CAAC;QACL,CAAC;aACI,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,sGAAsG,CAAC,CAAC;YACrH,OAAO;QACX,CAAC;QACD,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAClC,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,iBAAiB,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;IACL,CAAC;IAEO,0BAA0B;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,IAAI,CAAC,aAAa,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC;QACtD,iCAAiC;QACjC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,KAAK,oBAAoB,CAAC,IAAI,CAAC;QACvF,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM;YAAE,KAAK,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;QACjC,IAAI,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC3C,CAAC;IAEO,wBAAwB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAChC,8CAA8C;QAC9C,uGAAuG;QACvG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC/C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAKO,sBAAsB,GAAW,CAAC,CAAC,CAAC;IACpC,CAAC,gBAAgB;QACrB,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,sBAAsB,CAAC;QACzC,MAAM,UAAU,GAAuB,SAAS,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,KAAK,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvI,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACxC,OAAO;YACX,CAAC;YACD,IAAI,MAAM,GAAuB,SAAS,CAAC;YAC3C,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAChD,MAAM,GAAG,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;oBAC1C,MAAM;gBACV,CAAC;gBACD,yDAAyD;gBACzD,sDAAsD;qBACjD,CAAC;oBACF,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC1G,CAAC;YACL,CAAC;YACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBACvB,KAAK,CAAC;gBACV,IAAI,CAAC,IAAI,CAAC,SAAS;oBAAE,MAAM;gBAC3B,SAAS;YACb,CAAC;YACD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;gBACxB,KAAK,CAAC;gBACN,SAAS;YACb,CAAC;YACD,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpC,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;oBACb,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAC9C,WAAW,GAAG,WAAW,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;gBAChD,CAAC;gBACD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,KAAK,UAAU,CAAC,YAAY;wBACxB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;wBACrD,MAAM;oBACV,KAAK,UAAU,CAAC,WAAW;wBACvB,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC;wBACjD,MAAM;gBACd,CAAC;YACL,CAAC;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACtB,KAAK,CAAC;QACd,CAAC;IACL,CAAC;IAKD,IAAY,YAAY,KAAc,OAAO,IAAI,CAAC,GAAG,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7J,oBAAoB;QACxB,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC/B,IAAI,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAsB,CAAC;QAC9F,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC3C,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC9C,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;YAC7C,UAAU,CAAC,GAAG,GAAG,uCAAuC,CAAC;YACzD,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACzD,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;aACI,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1B,CAAC;aACI,CAAC;YACF,UAAU,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC7D,CAAC;IACL,CAAC;IACO,IAAI,CAAO;IACX,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAC5C,IAAI,CAAC,IAAI,CAAC,IAAI;YACV,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,YAAa,CAAC,QAAQ,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAa,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC;QAC3B,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC,CAAA;CACJ;AAjrBG;IADC,YAAY,EAAE;gDACa;AAM5B;IADC,YAAY,EAAE;+CAC0B;AAiBjC;IADP,YAAY,CAAC,GAAG,CAAC;yCACgC;AAI1C;IADP,YAAY,EAAE;2CAC+B;AAM9C;IADC,YAAY,CAAC,GAAG,CAAC;sCACY;AAkBtB;IADP,YAAY,EAAE;+CACwD;AAG/D;IADP,YAAY,EAAE;2DACyB;AAGhC;IADP,YAAY,CAAC,QAAQ,CAAC;2DACmB;AAGlC;IADP,YAAY,CAAC,OAAO,CAAC;kDACU;AAGxB;IADP,YAAY,EAAE;yCACU;AAQzB;IADC,YAAY,EAAE;gDAGd;AAeD;IADC,YAAY,EAAE;4CAKd;AAoGD;IADC,YAAY,EAAE;kDAOd;AA0fL,MAAM,YAAY;IAEL,OAAO,CAAU;IAE1B,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,IAAI,OAAO,CAAC,GAAY;QACpB,IAAI,GAAG;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;;YACjB,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;IAGD,GAAG,CAAC,KAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAsC;QACzC,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK;QACD,IAAI,IAAI,CAAC,oBAAoB;YAAE,OAAO;QACtC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,IAAI,EAAE;gBACxE,QAAQ,EAAE,IAAI,kBAAkB,CAAC,OAAO,CAAC;aAC5C,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,oBAAoB;gBAAE,OAAO;YACvC,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,oBAAoB,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,iCAAiC,EAAE,CAAC;QAEzC,MAAM,GAAG,GAAG,IAAI,CAAC,QAA8B,CAAC;QAChD,GAAG,EAAE,KAAK,EAAE,CAAC;QAEb,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,CAAC;QACjD,CAAC;IACL,CAAC;IAED,iCAAiC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,oBAAoB,EAAE,QAA8B,CAAC;QACtE,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,wFAAwF;QACxF,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;IAClG,CAAC;IAEO,OAAO,GAAmB,EAAE,CAAC;IAC7B,oBAAoB,CAAmB;IACvC,oBAAoB,GAAY,KAAK,CAAC;IACtC,MAAM,CAAoB;CACrC;AAKD,MAAM,iBAAiB;IAEX,iBAAiB,CAAc;IAC/B,UAAU,CAA8B;IACxC,eAAe,CAA2B;IAEjC,OAAO,CAAU;IACjB,OAAO,CAAe;IAEvC,YAAY,OAAqB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;IAEO,SAAS,CAAsB;IAEvC,MAAM,CAAC,GAAuB;QAC1B,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;QAErB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,GAAG,GAAG,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,IAAI,CAAC,GAAG,KAAK,QAAQ;gBACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,EAAE,EAAE;YAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;QACL,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAGvB,MAAM,KAAK,GAAY,IAAI,OAAO,EAAE,CAAC;QAErC,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,IAAgB,EAAE,EAAE;YACtD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,kBAAkB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvE,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;gBAC5D,kBAAkB,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;gBAC7D,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACtD,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;gBACpE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACvC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC,IAAkB,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC;gBAC1D,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;oBACd,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC1C,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;oBACpE,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,kBAAkB,GAAG,CAAC,CAAC;QAC3B,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE;YACtC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,kBAAkB,GAAG,EAAE,EAAE,CAAC;oBACnD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC5C,OAAO;YACX,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,OAAO;YACjD,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC3C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;gBACzC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC;YACxC,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;QAC/B,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YACrC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC7B,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,WAAW,GAAY,KAAK,CAAC;IAC7B,UAAU,GAAG,CAAC,CAAC;IAEvB,OAAO;QAEH,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC7D,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACvC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1D,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACrC,CAAC;IACL,CAAC;CAEJ;AAED,MAAM,kBAAmB,SAAQ,cAAc;IAE3C,IAAI,YAAY,CAAC,GAAW;QACxB,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM,CAAC,GAAuC;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC/C,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACd,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACd,oBAAoB;QACpB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAEgB,OAAO,GAAY,IAAI,OAAO,EAAE,CAAC;IAClD,IAAI,MAAM;QACN,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,IAAI,CAAC,GAAW;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;QAChD,IAAI,GAAG,GAAG,IAAI;YAAE,GAAG,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;QACb,+BAA+B;QAC/B,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,kBAAkB;IAClE,CAAC;IAED,KAAK;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,wBAAwB;IAExB,YAAY,GAAY;QACpB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG;YACZ,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACnB,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;YAC1B,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE;SAClD,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAyCnB,CAAA;QACD,IAAI,CAAC,cAAc,GAAG;;;;;;;;;;;;SAYrB,CAAA;IACL,CAAC;CACJ"}
@@ -26,9 +26,9 @@ export declare const noVoip = "noVoip";
26
26
  * voip.createMenuButton = true;
27
27
  *
28
28
  * // Manual control
29
- * voip.connect(); // Start sending audio
30
- * voip.disconnect(); // Stop sending
31
- * voip.setMuted(true); // Mute microphone
29
+ * voip.connect(); // Start sending your microphone
30
+ * voip.disconnect(); // Stop sending your microphone
31
+ * voip.setMuted(true); // Mute incoming audio (silence other users)
32
32
  * ```
33
33
  *
34
34
  * @summary Voice over IP for networked audio communication
@@ -87,8 +87,8 @@ export declare class Voip extends Behaviour {
87
87
  */
88
88
  get incomingStreams(): ReadonlyMap<string, HTMLAudioElement>;
89
89
  /**
90
- * Threshold for speaking detection (0–255). When a user's audio amplitude exceeds this,
91
- * they are considered "speaking". Default is 30.
90
+ * Normalized amplitude threshold for speaking detection (0–1). When a user's average
91
+ * audio amplitude exceeds this, they are considered "speaking". Default is 0.1.
92
92
  */
93
93
  speakingThreshold: number;
94
94
  /**
@@ -98,6 +98,8 @@ export declare class Voip extends Behaviour {
98
98
  onSpeakingChanged: EventList;
99
99
  private _speakingStates;
100
100
  private _analysers;
101
+ private _sharedAudioContext?;
102
+ private _lastSpeakingPollMs;
101
103
  private _net?;
102
104
  private _menubutton?;
103
105
  /** @internal */
@@ -111,21 +113,27 @@ export declare class Voip extends Behaviour {
111
113
  /** Set via the mic button (e.g. when the websocket connection closes and rejoins but the user was muted before we don't want to enable VOIP again automatically) */
112
114
  private _allowSending;
113
115
  private _outputStream;
116
+ private _connectInFlight?;
114
117
  /**
115
118
  * @returns true if the component is currently sending audio
116
119
  */
117
120
  get isSending(): boolean;
118
121
  /** Start sending audio. */
119
122
  connect(audioSource?: MediaTrackConstraints): Promise<boolean>;
123
+ private _connectImpl;
120
124
  /** Stop sending audio (muting your own microphone) */
121
125
  disconnect(opts?: {
122
126
  remember: boolean;
123
127
  }): void;
124
128
  /**
125
- * Mute or unmute the audio stream (this will only mute incoming streams and not mute your own microphone. Use disconnect() to mute your own microphone)
129
+ * Mute or unmute the audio you hear from other users (incoming streams).
130
+ * This does NOT mute your own microphone — use {@link disconnect} to stop sending your microphone.
126
131
  */
127
132
  setMuted(mute: boolean): void;
128
- /** Returns true if the audio stream is currently muted */
133
+ /**
134
+ * Returns true if incoming audio is currently muted (you can't hear other users).
135
+ * When there are no incoming streams, returns false.
136
+ */
129
137
  get isMuted(): boolean;
130
138
  private updateButton;
131
139
  /** @deprecated */
@@ -138,6 +146,7 @@ export declare class Voip extends Behaviour {
138
146
  update(): void;
139
147
  private setupAnalyser;
140
148
  private cleanupAnalyser;
149
+ private closeSharedAudioContext;
141
150
  private onReceiveStream;
142
151
  private onStreamEnded;
143
152
  private onEnabledChanged;
@@ -40,9 +40,9 @@ const debugParam = getParam("debugvoip");
40
40
  * voip.createMenuButton = true;
41
41
  *
42
42
  * // Manual control
43
- * voip.connect(); // Start sending audio
44
- * voip.disconnect(); // Stop sending
45
- * voip.setMuted(true); // Mute microphone
43
+ * voip.connect(); // Start sending your microphone
44
+ * voip.disconnect(); // Stop sending your microphone
45
+ * voip.setMuted(true); // Mute incoming audio (silence other users)
46
46
  * ```
47
47
  *
48
48
  * @summary Voice over IP for networked audio communication
@@ -78,9 +78,14 @@ export class Voip extends Behaviour {
78
78
  */
79
79
  get volume() { return this._volume; }
80
80
  set volume(val) {
81
- this._volume = val;
81
+ // HTMLMediaElement.volume throws IndexSizeError outside [0,1] — clamp before assigning.
82
+ // Reject NaN so we don't poison _volume and break serialization.
83
+ if (Number.isNaN(val))
84
+ return;
85
+ const clamped = Math.max(0, Math.min(1, val));
86
+ this._volume = clamped;
82
87
  for (const audio of this._incomingStreams.values()) {
83
- audio.volume = val;
88
+ audio.volume = clamped;
84
89
  }
85
90
  }
86
91
  /**
@@ -110,10 +115,10 @@ export class Voip extends Behaviour {
110
115
  return this._incomingStreams;
111
116
  }
112
117
  /**
113
- * Threshold for speaking detection (0–255). When a user's audio amplitude exceeds this,
114
- * they are considered "speaking". Default is 30.
118
+ * Normalized amplitude threshold for speaking detection (0–1). When a user's average
119
+ * audio amplitude exceeds this, they are considered "speaking". Default is 0.1.
115
120
  */
116
- speakingThreshold = 30;
121
+ speakingThreshold = 0.1;
117
122
  /**
118
123
  * Event fired when a user's speaking state changes.
119
124
  * Passes `{ userId: string, isSpeaking: boolean, volume: number }`.
@@ -121,6 +126,10 @@ export class Voip extends Behaviour {
121
126
  onSpeakingChanged = new EventList();
122
127
  _speakingStates = new Map();
123
128
  _analysers = new Map();
129
+ // Single shared AudioContext for all remote-user analysers. Browsers cap live AudioContexts at ~6 per tab,
130
+ // so one-per-user would break voice rooms of 7+ participants. Lazily created on first setupAnalyser.
131
+ _sharedAudioContext;
132
+ _lastSpeakingPollMs = 0;
124
133
  _net;
125
134
  _menubutton;
126
135
  /** @internal */
@@ -128,12 +137,12 @@ export class Voip extends Behaviour {
128
137
  if (debugParam)
129
138
  this.debug = true;
130
139
  if (this.debug) {
131
- console.log("VOIP debugging: press 'v' to toggle mute or 'c' to toggle connect/disconnect");
140
+ console.log("VOIP debugging: press 'v' to toggle incoming mute, 'c' to toggle connect/disconnect");
132
141
  window.addEventListener("keydown", async (evt) => {
133
142
  const key = evt.key.toLowerCase();
134
143
  switch (key) {
135
144
  case "v":
136
- console.log("MUTE?", !this.isMuted);
145
+ console.log("VOIP: toggle incoming mute → ", !this.isMuted);
137
146
  this.setMuted(!this.isMuted);
138
147
  break;
139
148
  case "c":
@@ -144,15 +153,6 @@ export class Voip extends Behaviour {
144
153
  break;
145
154
  }
146
155
  });
147
- // mute unfocused
148
- window.addEventListener("blur", () => {
149
- console.log("VOIP: MUTE ON BLUR");
150
- this.setMuted(true);
151
- });
152
- window.addEventListener("focus", () => {
153
- console.log("VOIP: UNMUTE ON FOCUS");
154
- this.setMuted(false);
155
- });
156
156
  }
157
157
  }
158
158
  /** @internal */
@@ -189,10 +189,11 @@ export class Voip extends Behaviour {
189
189
  this.onEnabledChanged();
190
190
  this.updateButton();
191
191
  window.removeEventListener("visibilitychange", this.onVisibilityChanged);
192
- // Clean up analysers
192
+ // Clean up analysers and the shared AudioContext (lazily recreated on next setupAnalyser).
193
193
  for (const userId of [...this._analysers.keys()]) {
194
194
  this.cleanupAnalyser(userId);
195
195
  }
196
+ this.closeSharedAudioContext();
196
197
  }
197
198
  /** @internal */
198
199
  onDestroy() {
@@ -202,6 +203,7 @@ export class Voip extends Behaviour {
202
203
  for (const userId of [...this._analysers.keys()]) {
203
204
  this.cleanupAnalyser(userId);
204
205
  }
206
+ this.closeSharedAudioContext();
205
207
  for (const incoming of this._incomingStreams.values()) {
206
208
  disposeStream(incoming.srcObject);
207
209
  }
@@ -211,12 +213,27 @@ export class Voip extends Behaviour {
211
213
  /** Set via the mic button (e.g. when the websocket connection closes and rejoins but the user was muted before we don't want to enable VOIP again automatically) */
212
214
  _allowSending = true;
213
215
  _outputStream = null;
216
+ // Tracks an in-flight connect() so concurrent callers coalesce onto the same promise
217
+ // instead of each running getUserMedia in parallel (which would leak a MediaStream and
218
+ // briefly transmit then kill the first acquired stream).
219
+ _connectInFlight;
214
220
  /**
215
221
  * @returns true if the component is currently sending audio
216
222
  */
217
223
  get isSending() { return this._outputStream != null && this._outputStream.active; }
218
224
  /** Start sending audio. */
219
- async connect(audioSource) {
225
+ connect(audioSource) {
226
+ // Coalesce concurrent callers. Without this, two near-simultaneous connect() calls
227
+ // each call getUserMedia in parallel, the first stream gets disposed mid-broadcast
228
+ // by the second, and a MediaStream leaks.
229
+ if (this._connectInFlight)
230
+ return this._connectInFlight;
231
+ this._connectInFlight = this._connectImpl(audioSource).finally(() => {
232
+ this._connectInFlight = undefined;
233
+ });
234
+ return this._connectInFlight;
235
+ }
236
+ async _connectImpl(audioSource) {
220
237
  if (!this._net) {
221
238
  console.error("Cannot connect to voice chat - NetworkedStreams not initialized. Make sure the component is enabled before calling this method.");
222
239
  return false;
@@ -265,28 +282,26 @@ export class Voip extends Behaviour {
265
282
  this.updateButton();
266
283
  }
267
284
  /**
268
- * Mute or unmute the audio stream (this will only mute incoming streams and not mute your own microphone. Use disconnect() to mute your own microphone)
285
+ * Mute or unmute the audio you hear from other users (incoming streams).
286
+ * This does NOT mute your own microphone — use {@link disconnect} to stop sending your microphone.
269
287
  */
270
288
  setMuted(mute) {
271
- const audio = this._outputStream?.getAudioTracks();
272
- if (audio) {
273
- for (const track of audio) {
274
- track.enabled = !mute;
275
- }
289
+ for (const audio of this._incomingStreams.values()) {
290
+ audio.muted = mute;
276
291
  }
277
292
  }
278
- /** Returns true if the audio stream is currently muted */
293
+ /**
294
+ * Returns true if incoming audio is currently muted (you can't hear other users).
295
+ * When there are no incoming streams, returns false.
296
+ */
279
297
  get isMuted() {
280
- if (this._outputStream === null)
298
+ if (this._incomingStreams.size === 0)
281
299
  return false;
282
- const audio = this._outputStream?.getAudioTracks();
283
- if (audio) {
284
- for (const track of audio) {
285
- if (!track.enabled)
286
- return true;
287
- }
300
+ for (const audio of this._incomingStreams.values()) {
301
+ if (!audio.muted)
302
+ return false;
288
303
  }
289
- return false;
304
+ return true;
290
305
  }
291
306
  async updateButton() {
292
307
  if (this.createMenuButton) {
@@ -365,7 +380,6 @@ export class Voip extends Behaviour {
365
380
  console.warn("VOIP failed getting audio stream", err);
366
381
  return null;
367
382
  });
368
- ;
369
383
  };
370
384
  const stream = await getUserMedia(audio);
371
385
  if (!stream)
@@ -379,7 +393,13 @@ export class Voip extends Behaviour {
379
393
  if (nonBuiltInAudioSource) {
380
394
  const constraints = Object.assign({}, audio);
381
395
  constraints.deviceId = nonBuiltInAudioSource.deviceId;
382
- return await getUserMedia(constraints);
396
+ const externalStream = await getUserMedia(constraints);
397
+ if (externalStream) {
398
+ // Release the built-in mic stream we grabbed first — otherwise its tracks stay live.
399
+ disposeStream(stream);
400
+ return externalStream;
401
+ }
402
+ // External device acquisition failed — keep the original stream rather than returning null.
383
403
  }
384
404
  }
385
405
  return stream;
@@ -412,18 +432,24 @@ export class Voip extends Behaviour {
412
432
  // Only run speaking detection if someone is listening
413
433
  if (!this.onSpeakingChanged || this.onSpeakingChanged.listenerCount <= 0)
414
434
  return;
435
+ // Rate-limit analysis to ~10Hz. Speaking-state is a coarse UI signal; running FFT per
436
+ // remote user every frame (60Hz) is wasteful and scales linearly with participant count.
437
+ const now = performance.now();
438
+ if (now - this._lastSpeakingPollMs < 100)
439
+ return;
440
+ this._lastSpeakingPollMs = now;
415
441
  for (const [userId, info] of this._analysers) {
416
442
  info.analyser.getByteFrequencyData(info.data);
417
- // Average amplitude
443
+ // Average amplitude normalized to 0–1
418
444
  let sum = 0;
419
445
  for (let i = 0; i < info.data.length; i++)
420
446
  sum += info.data[i];
421
- const avg = sum / info.data.length;
447
+ const volume = sum / info.data.length / 255;
422
448
  const wasSpeaking = this._speakingStates.get(userId) ?? false;
423
- const isSpeaking = avg > this.speakingThreshold;
449
+ const isSpeaking = volume > this.speakingThreshold;
424
450
  if (isSpeaking !== wasSpeaking) {
425
451
  this._speakingStates.set(userId, isSpeaking);
426
- this.onSpeakingChanged.invoke({ userId, isSpeaking, volume: avg / 255 });
452
+ this.onSpeakingChanged.invoke({ userId, isSpeaking, volume });
427
453
  }
428
454
  }
429
455
  }
@@ -432,13 +458,16 @@ export class Voip extends Behaviour {
432
458
  if (this._analysers.has(userId))
433
459
  return;
434
460
  try {
435
- const audioCtx = new AudioContext();
436
- const source = audioCtx.createMediaStreamSource(stream);
437
- const analyser = audioCtx.createAnalyser();
461
+ if (!this._sharedAudioContext) {
462
+ this._sharedAudioContext = new AudioContext();
463
+ }
464
+ const ctx = this._sharedAudioContext;
465
+ const source = ctx.createMediaStreamSource(stream);
466
+ const analyser = ctx.createAnalyser();
438
467
  analyser.fftSize = 256;
439
468
  source.connect(analyser);
440
469
  const data = new Uint8Array(analyser.frequencyBinCount);
441
- this._analysers.set(userId, { analyser, data, context: audioCtx });
470
+ this._analysers.set(userId, { source, analyser, data });
442
471
  }
443
472
  catch (err) {
444
473
  if (this.debug)
@@ -448,11 +477,18 @@ export class Voip extends Behaviour {
448
477
  cleanupAnalyser(userId) {
449
478
  const info = this._analysers.get(userId);
450
479
  if (info) {
451
- info.context.close();
480
+ info.source.disconnect();
481
+ info.analyser.disconnect();
452
482
  this._analysers.delete(userId);
453
483
  }
454
484
  this._speakingStates.delete(userId);
455
485
  }
486
+ closeSharedAudioContext() {
487
+ if (this._sharedAudioContext) {
488
+ this._sharedAudioContext.close();
489
+ this._sharedAudioContext = undefined;
490
+ }
491
+ }
456
492
  onReceiveStream = (evt) => {
457
493
  const userId = evt.target.userId;
458
494
  const stream = evt.stream;
@@ -487,13 +523,14 @@ export class Voip extends Behaviour {
487
523
  onVisibilityChanged = () => {
488
524
  if (this.runInBackground)
489
525
  return;
490
- const visible = document.visibilityState === "visible";
491
- const muted = !visible;
526
+ const muted = document.visibilityState !== "visible";
527
+ // Mute incoming so we don't hear other users while tab is hidden.
492
528
  this.setMuted(muted);
493
- for (const element of this._incomingStreams) {
494
- const str = element[1];
495
- str.muted = muted;
496
- }
529
+ // Also disable our outgoing mic tracks (cheaper than disconnect/reconnect — keeps the mic permission).
530
+ const tracks = this._outputStream?.getAudioTracks();
531
+ if (tracks)
532
+ for (const t of tracks)
533
+ t.enabled = !muted;
497
534
  };
498
535
  }
499
536
  __decorate([