livekit-client 2.22.3 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +35 -0
  2. package/dist/livekit-client.e2ee.worker.js +1 -1
  3. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  4. package/dist/livekit-client.e2ee.worker.mjs +71 -8
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +1746 -547
  7. package/dist/livekit-client.esm.mjs.map +1 -1
  8. package/dist/livekit-client.fm.worker.js +1 -1
  9. package/dist/livekit-client.fm.worker.js.map +1 -1
  10. package/dist/livekit-client.fm.worker.mjs +2 -1
  11. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  12. package/dist/livekit-client.umd.js +1 -1
  13. package/dist/livekit-client.umd.js.map +1 -1
  14. package/dist/src/api/SignalClient.d.ts +4 -2
  15. package/dist/src/api/SignalClient.d.ts.map +1 -1
  16. package/dist/src/api/WebSocketStream.d.ts +1 -0
  17. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  18. package/dist/src/api/utils.d.ts +1 -1
  19. package/dist/src/api/utils.d.ts.map +1 -1
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  22. package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
  23. package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +2 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/options.d.ts +14 -0
  27. package/dist/src/options.d.ts.map +1 -1
  28. package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
  29. package/dist/src/room/PCTransport.d.ts +100 -7
  30. package/dist/src/room/PCTransport.d.ts.map +1 -1
  31. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  32. package/dist/src/room/RTCEngine.d.ts +16 -0
  33. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  34. package/dist/src/room/Room.d.ts +54 -1
  35. package/dist/src/room/Room.d.ts.map +1 -1
  36. package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
  37. package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
  38. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
  39. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
  40. package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
  41. package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
  42. package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
  43. package/dist/src/room/defaults.d.ts.map +1 -1
  44. package/dist/src/room/errors.d.ts +18 -0
  45. package/dist/src/room/errors.d.ts.map +1 -1
  46. package/dist/src/room/events.d.ts +3 -2
  47. package/dist/src/room/events.d.ts.map +1 -1
  48. package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
  49. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  50. package/dist/src/room/participant/Participant.d.ts +1 -1
  51. package/dist/src/room/participant/Participant.d.ts.map +1 -1
  52. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  53. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  54. package/dist/src/room/rpc/utils.d.ts.map +1 -1
  55. package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
  56. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  57. package/dist/src/room/track/LocalTrack.d.ts +18 -0
  58. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  59. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  60. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  61. package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
  62. package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
  63. package/dist/src/room/track/processor/types.d.ts +11 -0
  64. package/dist/src/room/track/processor/types.d.ts.map +1 -1
  65. package/dist/src/room/track/utils.d.ts +13 -0
  66. package/dist/src/room/track/utils.d.ts.map +1 -1
  67. package/dist/src/room/utils.d.ts +60 -1
  68. package/dist/src/room/utils.d.ts.map +1 -1
  69. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  70. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  71. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  72. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  73. package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
  74. package/dist/ts4.2/api/utils.d.ts +9 -9
  75. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  76. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  77. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  78. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  79. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  80. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  81. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  82. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  83. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  84. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  85. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
  86. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  87. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  88. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  89. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  90. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  91. package/dist/ts4.2/e2ee/types.d.ts +231 -231
  92. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  93. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  94. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
  95. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
  96. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  97. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  98. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
  99. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  100. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  101. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  102. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  103. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  104. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  105. package/dist/ts4.2/index.d.ts +76 -76
  106. package/dist/ts4.2/logger.d.ts +66 -66
  107. package/dist/ts4.2/options.d.ts +163 -149
  108. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  109. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  110. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  111. package/dist/ts4.2/room/PCTransport.d.ts +268 -175
  112. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  113. package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
  114. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  115. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  116. package/dist/ts4.2/room/Room.d.ts +407 -365
  117. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  118. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
  119. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
  120. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  121. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  122. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  123. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  124. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  125. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  126. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  127. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  128. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  129. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  130. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  131. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  132. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  133. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  134. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  135. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  136. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  137. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  138. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  139. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  140. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  141. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  142. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  143. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  144. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  145. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  146. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  147. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  148. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  149. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  150. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  151. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  152. package/dist/ts4.2/room/debounce.d.ts +11 -11
  153. package/dist/ts4.2/room/defaults.d.ts +9 -9
  154. package/dist/ts4.2/room/errors.d.ts +180 -162
  155. package/dist/ts4.2/room/events.d.ts +638 -637
  156. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
  157. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  158. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  159. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  160. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
  161. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  162. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  163. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  164. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  165. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  166. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  167. package/dist/ts4.2/room/stats.d.ts +71 -71
  168. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  169. package/dist/ts4.2/room/timers.d.ts +12 -12
  170. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  171. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  172. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  173. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  174. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
  175. package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
  176. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  177. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
  178. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
  179. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  180. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  181. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  182. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  183. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  184. package/dist/ts4.2/room/track/create.d.ts +25 -25
  185. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  186. package/dist/ts4.2/room/track/options.d.ts +403 -403
  187. package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
  188. package/dist/ts4.2/room/track/record.d.ts +13 -13
  189. package/dist/ts4.2/room/track/types.d.ts +28 -28
  190. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  191. package/dist/ts4.2/room/types.d.ts +127 -127
  192. package/dist/ts4.2/room/utils.d.ts +273 -214
  193. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  194. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  195. package/dist/ts4.2/test/mocks.d.ts +12 -12
  196. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  197. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  198. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  199. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  200. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  201. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  202. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  203. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  204. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  205. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  206. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  207. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  208. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  209. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  210. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  211. package/dist/ts4.2/version.d.ts +15 -15
  212. package/package.json +5 -4
  213. package/src/api/SignalClient.e2e.test.ts +1 -3
  214. package/src/api/SignalClient.test.ts +394 -10
  215. package/src/api/SignalClient.ts +132 -76
  216. package/src/api/WebSocketStream.test.ts +11 -0
  217. package/src/api/WebSocketStream.ts +22 -1
  218. package/src/api/utils.ts +1 -1
  219. package/src/e2ee/E2eeManager.test.ts +43 -0
  220. package/src/e2ee/E2eeManager.ts +6 -2
  221. package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
  222. package/src/e2ee/worker/FrameCryptor.ts +21 -4
  223. package/src/e2ee/worker/naluUtils.test.ts +123 -0
  224. package/src/e2ee/worker/naluUtils.ts +57 -2
  225. package/src/index.ts +2 -0
  226. package/src/options.ts +16 -0
  227. package/src/room/DefaultReconnectPolicy.test.ts +58 -0
  228. package/src/room/DefaultReconnectPolicy.ts +14 -2
  229. package/src/room/PCTransport.test.ts +327 -9
  230. package/src/room/PCTransport.ts +339 -36
  231. package/src/room/PCTransportManager.ts +3 -1
  232. package/src/room/RTCEngine.test.ts +318 -2
  233. package/src/room/RTCEngine.ts +126 -12
  234. package/src/room/Room.test.ts +148 -6
  235. package/src/room/Room.ts +312 -80
  236. package/src/room/data-channel/DataChannelManager.test.ts +24 -7
  237. package/src/room/data-channel/DataChannelManager.ts +43 -38
  238. package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
  239. package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
  240. package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
  241. package/src/room/data-channel/LossyDataChannel.ts +10 -1
  242. package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
  243. package/src/room/data-channel/ReliableDataChannel.ts +16 -5
  244. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
  245. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
  246. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  247. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  248. package/src/room/defaults.ts +1 -0
  249. package/src/room/errors.test.ts +36 -0
  250. package/src/room/errors.ts +27 -0
  251. package/src/room/events.ts +2 -1
  252. package/src/room/participant/LocalParticipant.test.ts +136 -1
  253. package/src/room/participant/LocalParticipant.ts +66 -17
  254. package/src/room/participant/Participant.ts +6 -3
  255. package/src/room/participant/publishUtils.ts +0 -19
  256. package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
  257. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  258. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  259. package/src/room/rpc/utils.test.ts +32 -0
  260. package/src/room/rpc/utils.ts +7 -0
  261. package/src/room/track/LocalAudioTrack.ts +101 -10
  262. package/src/room/track/LocalTrack.ts +87 -19
  263. package/src/room/track/LocalVideoTrack.ts +17 -3
  264. package/src/room/track/RemoteAudioTrack.ts +59 -14
  265. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  266. package/src/room/track/RemoteVideoTrack.ts +29 -3
  267. package/src/room/track/processor/types.ts +11 -0
  268. package/src/room/track/utils.test.ts +206 -2
  269. package/src/room/track/utils.ts +117 -5
  270. package/src/room/utils.test.ts +250 -0
  271. package/src/room/utils.ts +152 -19
  272. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,55 +1,61 @@
1
- import type { AudioReceiverStats } from '../stats';
2
- import type { LoggerOptions } from '../types';
3
- import RemoteTrack from './RemoteTrack';
4
- import { Track } from './Track';
5
- import type { AudioOutputOptions } from './options';
6
- export default class RemoteAudioTrack extends RemoteTrack<Track.Kind.Audio> {
7
- private prevStats?;
8
- private elementVolume;
9
- private audioContext?;
10
- private gainNode?;
11
- private sourceNode?;
12
- private webAudioPluginNodes;
13
- private sinkId?;
14
- constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, audioContext?: AudioContext, audioOutput?: AudioOutputOptions, loggerOptions?: LoggerOptions);
15
- /**
16
- * sets the volume for all attached audio elements
17
- */
18
- setVolume(volume: number): void;
19
- /**
20
- * gets the volume of attached audio elements (loudest)
21
- */
22
- getVolume(): number;
23
- /**
24
- * calls setSinkId on all attached elements, if supported
25
- * @param deviceId audio output device
26
- */
27
- setSinkId(deviceId: string): Promise<void>;
28
- attach(): HTMLMediaElement;
29
- attach(element: HTMLMediaElement): HTMLMediaElement;
30
- /**
31
- * Detaches from all attached elements
32
- */
33
- detach(): HTMLMediaElement[];
34
- /**
35
- * Detach from a single element
36
- * @param element
37
- */
38
- detach(element: HTMLMediaElement): HTMLMediaElement;
39
- /**
40
- * @internal
41
- * @experimental
42
- */
43
- setAudioContext(audioContext: AudioContext | undefined): void;
44
- /**
45
- * @internal
46
- * @experimental
47
- * @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.
48
- */
49
- setWebAudioPlugins(nodes: AudioNode[]): void;
50
- private connectWebAudio;
51
- private disconnectWebAudio;
52
- protected monitorReceiver: () => Promise<void>;
53
- getReceiverStats(): Promise<AudioReceiverStats | undefined>;
54
- }
55
- //# sourceMappingURL=RemoteAudioTrack.d.ts.map
1
+ import type { AudioReceiverStats } from '../stats';
2
+ import type { LoggerOptions } from '../types';
3
+ import RemoteTrack from './RemoteTrack';
4
+ import { Track } from './Track';
5
+ import type { AudioOutputOptions } from './options';
6
+ export default class RemoteAudioTrack extends RemoteTrack<Track.Kind.Audio> {
7
+ private prevStats?;
8
+ private elementVolume;
9
+ private audioContext?;
10
+ private gainNode?;
11
+ private sourceNode?;
12
+ private webAudioPluginNodes;
13
+ /**
14
+ * the nodes of the graph currently wired up, in order, so teardown can undo exactly the edges
15
+ * `connectWebAudio` created. Reading `webAudioPluginNodes` instead would miss the old plugins
16
+ * once `setWebAudioPlugins` has replaced them.
17
+ */
18
+ private connectedNodes;
19
+ private sinkId?;
20
+ constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, audioContext?: AudioContext, audioOutput?: AudioOutputOptions, loggerOptions?: LoggerOptions);
21
+ /**
22
+ * sets the volume for all attached audio elements
23
+ */
24
+ setVolume(volume: number): void;
25
+ /**
26
+ * gets the volume of attached audio elements (loudest)
27
+ */
28
+ getVolume(): number;
29
+ /**
30
+ * calls setSinkId on all attached elements, if supported
31
+ * @param deviceId audio output device
32
+ */
33
+ setSinkId(deviceId: string): Promise<void>;
34
+ attach(): HTMLMediaElement;
35
+ attach(element: HTMLMediaElement): HTMLMediaElement;
36
+ /**
37
+ * Detaches from all attached elements
38
+ */
39
+ detach(): HTMLMediaElement[];
40
+ /**
41
+ * Detach from a single element
42
+ * @param element
43
+ */
44
+ detach(element: HTMLMediaElement): HTMLMediaElement;
45
+ /**
46
+ * @internal
47
+ * @experimental
48
+ */
49
+ setAudioContext(audioContext: AudioContext | undefined): void;
50
+ /**
51
+ * @internal
52
+ * @experimental
53
+ * @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.
54
+ */
55
+ setWebAudioPlugins(nodes: AudioNode[]): void;
56
+ private connectWebAudio;
57
+ private disconnectWebAudio;
58
+ protected monitorReceiver: () => Promise<void>;
59
+ getReceiverStats(): Promise<AudioReceiverStats | undefined>;
60
+ }
61
+ //# sourceMappingURL=RemoteAudioTrack.d.ts.map
@@ -1,38 +1,38 @@
1
- import type { LoggerOptions } from '../types';
2
- import { Track } from './Track';
3
- export default abstract class RemoteTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
4
- /** @internal */
5
- receiver: RTCRtpReceiver | undefined;
6
- constructor(mediaTrack: MediaStreamTrack, sid: string, kind: TrackKind, receiver: RTCRtpReceiver, loggerOptions?: LoggerOptions);
7
- get isLocal(): boolean;
8
- /** @internal */
9
- setMuted(muted: boolean): void;
10
- /** @internal */
11
- setMediaStream(stream: MediaStream): void;
12
- start(): void;
13
- stop(): void;
14
- /**
15
- * Gets the RTCStatsReport for the RemoteTrack's underlying RTCRtpReceiver
16
- * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
17
- *
18
- * @returns Promise<RTCStatsReport> | undefined
19
- */
20
- getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
21
- /**
22
- * Allows to set a playout delay (in seconds) for this track.
23
- * A higher value allows for more buffering of the track in the browser
24
- * and will result in a delay of media being played back of `delayInSeconds`
25
- */
26
- setPlayoutDelay(delayInSeconds: number): void;
27
- /**
28
- * Returns the current playout delay (in seconds) of this track.
29
- */
30
- getPlayoutDelay(): number;
31
- startMonitor(): void;
32
- stopMonitor(): void;
33
- protected abstract monitorReceiver(): void;
34
- private timeSyncLoop;
35
- private onTimeSyncListenerAdded;
36
- registerTimeSyncUpdate(): void;
37
- }
38
- //# sourceMappingURL=RemoteTrack.d.ts.map
1
+ import type { LoggerOptions } from '../types';
2
+ import { Track } from './Track';
3
+ export default abstract class RemoteTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
4
+ /** @internal */
5
+ receiver: RTCRtpReceiver | undefined;
6
+ constructor(mediaTrack: MediaStreamTrack, sid: string, kind: TrackKind, receiver: RTCRtpReceiver, loggerOptions?: LoggerOptions);
7
+ get isLocal(): boolean;
8
+ /** @internal */
9
+ setMuted(muted: boolean): void;
10
+ /** @internal */
11
+ setMediaStream(stream: MediaStream): void;
12
+ start(): void;
13
+ stop(): void;
14
+ /**
15
+ * Gets the RTCStatsReport for the RemoteTrack's underlying RTCRtpReceiver
16
+ * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
17
+ *
18
+ * @returns Promise<RTCStatsReport> | undefined
19
+ */
20
+ getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
21
+ /**
22
+ * Allows to set a playout delay (in seconds) for this track.
23
+ * A higher value allows for more buffering of the track in the browser
24
+ * and will result in a delay of media being played back of `delayInSeconds`
25
+ */
26
+ setPlayoutDelay(delayInSeconds: number): void;
27
+ /**
28
+ * Returns the current playout delay (in seconds) of this track.
29
+ */
30
+ getPlayoutDelay(): number;
31
+ startMonitor(): void;
32
+ stopMonitor(): void;
33
+ protected abstract monitorReceiver(): void;
34
+ private timeSyncLoop;
35
+ private onTimeSyncListenerAdded;
36
+ registerTimeSyncUpdate(): void;
37
+ }
38
+ //# sourceMappingURL=RemoteTrack.d.ts.map
@@ -1,75 +1,72 @@
1
- import { SubscriptionError, TrackInfo } from '@livekit/protocol';
2
- import type { LoggerOptions } from '../types';
3
- import type RemoteTrack from './RemoteTrack';
4
- import { Track, VideoQuality } from './Track';
5
- import { TrackPublication } from './TrackPublication';
6
- export default class RemoteTrackPublication extends TrackPublication {
7
- track?: RemoteTrack;
8
- /** @internal */
9
- protected allowed: boolean;
10
- protected subscribed?: boolean;
11
- protected requestedDisabled: boolean | undefined;
12
- protected visible: boolean;
13
- protected videoDimensionsAdaptiveStream?: Track.Dimensions;
14
- protected requestedVideoDimensions?: Track.Dimensions;
15
- protected requestedMaxQuality?: VideoQuality;
16
- protected fps?: number;
17
- protected subscriptionError?: SubscriptionError;
18
- constructor(kind: Track.Kind, ti: TrackInfo, autoSubscribe: boolean | undefined, loggerOptions?: LoggerOptions);
19
- /**
20
- * Subscribe or unsubscribe to this remote track
21
- * @param subscribed true to subscribe to a track, false to unsubscribe
22
- */
23
- setSubscribed(subscribed: boolean): void;
24
- get subscriptionStatus(): TrackPublication.SubscriptionStatus;
25
- get permissionStatus(): TrackPublication.PermissionStatus;
26
- /**
27
- * Returns true if track is subscribed, and ready for playback
28
- */
29
- get isSubscribed(): boolean;
30
- get isDesired(): boolean;
31
- get isEnabled(): boolean;
32
- get isLocal(): boolean;
33
- /**
34
- * disable server from sending down data for this track. this is useful when
35
- * the participant is off screen, you may disable streaming down their video
36
- * to reduce bandwidth requirements
37
- * @param enabled
38
- */
39
- setEnabled(enabled: boolean): void;
40
- /**
41
- * for tracks that support simulcasting, adjust subscribed quality
42
- *
43
- * This indicates the highest quality the client can accept. if network
44
- * bandwidth does not allow, server will automatically reduce quality to
45
- * optimize for uninterrupted video
46
- */
47
- setVideoQuality(quality: VideoQuality): void;
48
- /**
49
- * Explicitly set the video dimensions for this track.
50
- *
51
- * This will take precedence over adaptive stream dimensions.
52
- *
53
- * @param dimensions The video dimensions to set.
54
- */
55
- setVideoDimensions(dimensions: Track.Dimensions): void;
56
- setVideoFPS(fps: number): void;
57
- get videoQuality(): VideoQuality | undefined;
58
- /** @internal */
59
- setTrack(track?: RemoteTrack): void;
60
- /** @internal */
61
- setAllowed(allowed: boolean): void;
62
- /** @internal */
63
- setSubscriptionError(error: SubscriptionError): void;
64
- /** @internal */
65
- updateInfo(info: TrackInfo): void;
66
- private emitSubscriptionUpdateIfChanged;
67
- private emitPermissionUpdateIfChanged;
68
- private isManualOperationAllowed;
69
- protected handleEnded: (track: RemoteTrack) => void;
70
- protected get isAdaptiveStream(): boolean;
71
- protected handleVisibilityChange: (visible: boolean) => void;
72
- protected handleVideoDimensionsChange: (dimensions: Track.Dimensions) => void;
73
- emitTrackUpdate(): void;
74
- }
75
- //# sourceMappingURL=RemoteTrackPublication.d.ts.map
1
+ import { SubscriptionError, TrackInfo } from '@livekit/protocol';
2
+ import type { LoggerOptions } from '../types';
3
+ import type RemoteTrack from './RemoteTrack';
4
+ import { Track, VideoQuality } from './Track';
5
+ import { TrackPublication } from './TrackPublication';
6
+ export default class RemoteTrackPublication extends TrackPublication {
7
+ track?: RemoteTrack;
8
+ /** @internal */
9
+ protected allowed: boolean;
10
+ protected subscribed?: boolean;
11
+ protected requestedDisabled: boolean | undefined;
12
+ protected visible: boolean;
13
+ protected videoDimensionsAdaptiveStream?: Track.Dimensions;
14
+ protected requestedVideoDimensions?: Track.Dimensions;
15
+ protected requestedMaxQuality?: VideoQuality;
16
+ protected fps?: number;
17
+ protected subscriptionError?: SubscriptionError;
18
+ constructor(kind: Track.Kind, ti: TrackInfo, autoSubscribe: boolean | undefined, loggerOptions?: LoggerOptions);
19
+ /**
20
+ * Subscribe or unsubscribe to this remote track
21
+ * @param subscribed true to subscribe to a track, false to unsubscribe
22
+ */
23
+ setSubscribed(subscribed: boolean): void;
24
+ get subscriptionStatus(): TrackPublication.SubscriptionStatus;
25
+ get permissionStatus(): TrackPublication.PermissionStatus;
26
+ get isSubscribed(): boolean;
27
+ get isDesired(): boolean;
28
+ get isEnabled(): boolean;
29
+ get isLocal(): boolean;
30
+ /**
31
+ * disable server from sending down data for this track. this is useful when
32
+ * the participant is off screen, you may disable streaming down their video
33
+ * to reduce bandwidth requirements
34
+ * @param enabled
35
+ */
36
+ setEnabled(enabled: boolean): void;
37
+ /**
38
+ * for tracks that support simulcasting, adjust subscribed quality
39
+ *
40
+ * This indicates the highest quality the client can accept. if network
41
+ * bandwidth does not allow, server will automatically reduce quality to
42
+ * optimize for uninterrupted video
43
+ */
44
+ setVideoQuality(quality: VideoQuality): void;
45
+ /**
46
+ * Explicitly set the video dimensions for this track.
47
+ *
48
+ * This will take precedence over adaptive stream dimensions.
49
+ *
50
+ * @param dimensions The video dimensions to set.
51
+ */
52
+ setVideoDimensions(dimensions: Track.Dimensions): void;
53
+ setVideoFPS(fps: number): void;
54
+ get videoQuality(): (VideoQuality | undefined);
55
+ /** @internal */
56
+ setTrack(track?: RemoteTrack): void;
57
+ /** @internal */
58
+ setAllowed(allowed: boolean): void;
59
+ /** @internal */
60
+ setSubscriptionError(error: SubscriptionError): void;
61
+ /** @internal */
62
+ updateInfo(info: TrackInfo): void;
63
+ private emitSubscriptionUpdateIfChanged;
64
+ private emitPermissionUpdateIfChanged;
65
+ private isManualOperationAllowed;
66
+ protected handleEnded: (track: RemoteTrack) => void;
67
+ protected get isAdaptiveStream(): boolean;
68
+ protected handleVisibilityChange: (visible: boolean) => void;
69
+ protected handleVideoDimensionsChange: (dimensions: Track.Dimensions) => void;
70
+ emitTrackUpdate(): void;
71
+ }
72
+ //# sourceMappingURL=RemoteTrackPublication.d.ts.map
@@ -1,76 +1,73 @@
1
- import type { FrameMetadata } from '../../frameMetadata/types';
2
- import type { VideoReceiverStats } from '../stats';
3
- import type { LoggerOptions } from '../types';
4
- import type { FrameMetadataExtractor } from './FrameMetadataExtractor';
5
- import RemoteTrack from './RemoteTrack';
6
- import { Track } from './Track';
7
- import type { AdaptiveStreamSettings } from './types';
8
- export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> {
9
- private prevStats?;
10
- private elementInfos;
11
- private adaptiveStreamSettings?;
12
- private lastVisible?;
13
- private lastDimensions?;
14
- /** @internal */
15
- frameMetadataExtractor?: FrameMetadataExtractor;
16
- constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions);
17
- get isAdaptiveStream(): boolean;
18
- /**
19
- * Look up frame-level metadata for a given RTP timestamp.
20
- * Use with the `TrackEvent.TimeSyncUpdate` event to correlate displayed frames
21
- * with their capture-time metadata.
22
- *
23
- * Requires the room to be configured with the `frameMetadata` worker option
24
- * and the publishing track to have frame metadata features enabled.
25
- *
26
- */
27
- lookupFrameMetadata({ rtpTimestamp }: {
28
- rtpTimestamp: number;
29
- }): FrameMetadata | undefined;
30
- setStreamState(value: Track.StreamState): void;
31
- /**
32
- * Note: When using adaptiveStream, you need to use remoteVideoTrack.attach() to add the track to a HTMLVideoElement, otherwise your video tracks might never start
33
- */
34
- get mediaStreamTrack(): MediaStreamTrack;
35
- /** @internal */
36
- setMuted(muted: boolean): void;
37
- attach(): HTMLMediaElement;
38
- attach(element: HTMLMediaElement): HTMLMediaElement;
39
- /**
40
- * Observe an ElementInfo for changes when adaptive streaming.
41
- * @param elementInfo
42
- * @internal
43
- */
44
- observeElementInfo(elementInfo: ElementInfo): void;
45
- /**
46
- * Stop observing an ElementInfo for changes.
47
- * @param elementInfo
48
- * @internal
49
- */
50
- stopObservingElementInfo(elementInfo: ElementInfo): void;
51
- detach(): HTMLMediaElement[];
52
- detach(element: HTMLMediaElement): HTMLMediaElement;
53
- /** @internal */
54
- getDecoderImplementation(): string | undefined;
55
- protected monitorReceiver: () => Promise<void>;
56
- getReceiverStats(): Promise<VideoReceiverStats | undefined>;
57
- private stopObservingElement;
58
- protected handleAppVisibilityChanged(): Promise<void>;
59
- private readonly debouncedHandleResize;
60
- private updateVisibility;
61
- private updateDimensions;
62
- private getPixelDensity;
63
- }
64
- export interface ElementInfo {
65
- element: object;
66
- width(): number;
67
- height(): number;
68
- visible: boolean;
69
- pictureInPicture: boolean;
70
- visibilityChangedAt: number | undefined;
71
- handleResize?: () => void;
72
- handleVisibilityChanged?: () => void;
73
- observe(): void;
74
- stopObserving(): void;
75
- }
76
- //# sourceMappingURL=RemoteVideoTrack.d.ts.map
1
+ import type { FrameMetadata } from '../../frameMetadata/types';
2
+ import type { VideoReceiverStats } from '../stats';
3
+ import type { LoggerOptions } from '../types';
4
+ import type { FrameMetadataExtractor } from './FrameMetadataExtractor';
5
+ import RemoteTrack from './RemoteTrack';
6
+ import { Track } from './Track';
7
+ import type { AdaptiveStreamSettings } from './types';
8
+ export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> {
9
+ private prevStats?;
10
+ private elementInfos;
11
+ private adaptiveStreamSettings?;
12
+ private lastVisible?;
13
+ private lastDimensions?;
14
+ /** @internal */
15
+ frameMetadataExtractor?: FrameMetadataExtractor;
16
+ constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions);
17
+ get isAdaptiveStream(): boolean;
18
+ /**
19
+ * Look up frame-level metadata for a given RTP timestamp.
20
+ * Use with the `TrackEvent.TimeSyncUpdate` event to correlate displayed frames
21
+ * with their capture-time metadata.
22
+ *
23
+ * Requires the room to be configured with the `frameMetadata` worker option
24
+ * and the publishing track to have frame metadata features enabled.
25
+ *
26
+ */
27
+ lookupFrameMetadata({ rtpTimestamp }: {
28
+ rtpTimestamp: number;
29
+ }): FrameMetadata | undefined;
30
+ setStreamState(value: Track.StreamState): void;
31
+ get mediaStreamTrack(): MediaStreamTrack;
32
+ /** @internal */
33
+ setMuted(muted: boolean): void;
34
+ attach(): HTMLMediaElement;
35
+ attach(element: HTMLMediaElement): HTMLMediaElement;
36
+ /**
37
+ * Observe an ElementInfo for changes when adaptive streaming.
38
+ * @param elementInfo
39
+ * @internal
40
+ */
41
+ observeElementInfo(elementInfo: ElementInfo): void;
42
+ /**
43
+ * Stop observing an ElementInfo for changes.
44
+ * @param elementInfo
45
+ * @internal
46
+ */
47
+ stopObservingElementInfo(elementInfo: ElementInfo): void;
48
+ detach(): HTMLMediaElement[];
49
+ detach(element: HTMLMediaElement): HTMLMediaElement;
50
+ /** @internal */
51
+ getDecoderImplementation(): string | undefined;
52
+ protected monitorReceiver: () => Promise<void>;
53
+ getReceiverStats(): Promise<VideoReceiverStats | undefined>;
54
+ private stopObservingElement;
55
+ protected handleAppVisibilityChanged(): Promise<void>;
56
+ private readonly debouncedHandleResize;
57
+ private updateVisibility;
58
+ private updateDimensions;
59
+ private getPixelDensity;
60
+ }
61
+ export interface ElementInfo {
62
+ element: object;
63
+ width(): number;
64
+ height(): number;
65
+ visible: boolean;
66
+ pictureInPicture: boolean;
67
+ visibilityChangedAt: number | undefined;
68
+ handleResize?: () => void;
69
+ handleVisibilityChanged?: () => void;
70
+ observe(): void;
71
+ stopObserving(): void;
72
+ }
73
+ //# sourceMappingURL=RemoteVideoTrack.d.ts.map