livekit-client 0.12.2 → 0.13.3

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 (82) hide show
  1. package/.eslintrc.js +1 -0
  2. package/.github/workflows/publish.yaml +1 -3
  3. package/README.md +76 -45
  4. package/dist/api/SignalClient.d.ts +3 -1
  5. package/dist/api/SignalClient.js +8 -0
  6. package/dist/api/SignalClient.js.map +1 -1
  7. package/dist/connect.d.ts +21 -0
  8. package/dist/connect.js +83 -0
  9. package/dist/connect.js.map +1 -0
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.js +2 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/options.d.ts +19 -13
  14. package/dist/options.js.map +1 -1
  15. package/dist/proto/livekit_models.d.ts +15 -0
  16. package/dist/proto/livekit_models.js +129 -1
  17. package/dist/proto/livekit_models.js.map +1 -1
  18. package/dist/proto/livekit_rtc.d.ts +16 -1
  19. package/dist/proto/livekit_rtc.js +116 -1
  20. package/dist/proto/livekit_rtc.js.map +1 -1
  21. package/dist/room/DeviceManager.d.ts +7 -0
  22. package/dist/room/DeviceManager.js +62 -0
  23. package/dist/room/DeviceManager.js.map +1 -0
  24. package/dist/room/RTCEngine.d.ts +1 -1
  25. package/dist/room/RTCEngine.js +8 -7
  26. package/dist/room/RTCEngine.js.map +1 -1
  27. package/dist/room/Room.d.ts +34 -2
  28. package/dist/room/Room.js +92 -2
  29. package/dist/room/Room.js.map +1 -1
  30. package/dist/room/defaults.d.ts +5 -0
  31. package/dist/room/defaults.js +29 -0
  32. package/dist/room/defaults.js.map +1 -0
  33. package/dist/room/events.d.ts +33 -4
  34. package/dist/room/events.js +32 -3
  35. package/dist/room/events.js.map +1 -1
  36. package/dist/room/participant/LocalParticipant.d.ts +25 -0
  37. package/dist/room/participant/LocalParticipant.js +162 -45
  38. package/dist/room/participant/LocalParticipant.js.map +1 -1
  39. package/dist/room/participant/Participant.d.ts +17 -0
  40. package/dist/room/participant/Participant.js +53 -0
  41. package/dist/room/participant/Participant.js.map +1 -1
  42. package/dist/room/participant/RemoteParticipant.d.ts +2 -0
  43. package/dist/room/participant/RemoteParticipant.js +23 -3
  44. package/dist/room/participant/RemoteParticipant.js.map +1 -1
  45. package/dist/room/track/LocalAudioTrack.d.ts +3 -0
  46. package/dist/room/track/LocalAudioTrack.js +37 -0
  47. package/dist/room/track/LocalAudioTrack.js.map +1 -1
  48. package/dist/room/track/LocalTrack.d.ts +6 -2
  49. package/dist/room/track/LocalTrack.js +39 -8
  50. package/dist/room/track/LocalTrack.js.map +1 -1
  51. package/dist/room/track/LocalTrackPublication.d.ts +6 -3
  52. package/dist/room/track/LocalTrackPublication.js +21 -2
  53. package/dist/room/track/LocalTrackPublication.js.map +1 -1
  54. package/dist/room/track/LocalVideoTrack.d.ts +3 -2
  55. package/dist/room/track/LocalVideoTrack.js +48 -16
  56. package/dist/room/track/LocalVideoTrack.js.map +1 -1
  57. package/dist/room/track/RemoteAudioTrack.d.ts +2 -0
  58. package/dist/room/track/RemoteAudioTrack.js +8 -0
  59. package/dist/room/track/RemoteAudioTrack.js.map +1 -1
  60. package/dist/room/track/RemoteVideoTrack.d.ts +1 -0
  61. package/dist/room/track/RemoteVideoTrack.js +6 -1
  62. package/dist/room/track/RemoteVideoTrack.js.map +1 -1
  63. package/dist/room/track/Track.d.ts +14 -2
  64. package/dist/room/track/Track.js +42 -0
  65. package/dist/room/track/Track.js.map +1 -1
  66. package/dist/room/track/TrackPublication.d.ts +1 -0
  67. package/dist/room/track/TrackPublication.js +2 -0
  68. package/dist/room/track/TrackPublication.js.map +1 -1
  69. package/dist/room/track/create.d.ts +23 -0
  70. package/dist/{livekit.js → room/track/create.js} +75 -110
  71. package/dist/room/track/create.js.map +1 -0
  72. package/dist/room/track/options.d.ts +76 -20
  73. package/dist/room/track/options.js +11 -6
  74. package/dist/room/track/options.js.map +1 -1
  75. package/dist/version.d.ts +2 -2
  76. package/dist/version.js +2 -2
  77. package/example/index.html +51 -20
  78. package/example/sample.ts +200 -87
  79. package/example/webpack.config.js +8 -2
  80. package/package.json +2 -2
  81. package/dist/livekit.d.ts +0 -44
  82. package/dist/livekit.js.map +0 -1
package/.eslintrc.js CHANGED
@@ -8,6 +8,7 @@ module.exports = {
8
8
  'max-classes-per-file': 'off',
9
9
  'no-param-reassign': 'off',
10
10
  'no-await-in-loop': 'off',
11
+ 'no-restricted-syntax': 'off',
11
12
  'consistent-return': 'off',
12
13
  'class-methods-use-this': 'off',
13
14
  '@typescript-eslint/no-use-before-define': 'off',
@@ -48,9 +48,7 @@ jobs:
48
48
  NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
49
49
 
50
50
  - name: S3 Upload
51
- uses: ItsKarma/aws-cli@v1.70.0
52
- with:
53
- args: s3 cp docs/ s3://livekit-docs/client-sdk-js --recursive
51
+ run: aws s3 cp docs/ s3://livekit-docs/client-sdk-js --recursive
54
52
  env:
55
53
  AWS_ACCESS_KEY_ID: ${{ secrets.DOCS_DEPLOY_AWS_ACCESS_KEY }}
56
54
  AWS_SECRET_ACCESS_KEY: ${{ secrets.DOCS_DEPLOY_AWS_API_SECRET }}
package/README.md CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  Docs and guides at [https://docs.livekit.io](https://docs.livekit.io)
8
8
 
9
+ [SDK reference](https://docs.livekit.io/client-sdk-js/)
10
+
9
11
  ## Installation
10
12
 
11
13
  ### Yarn
@@ -90,23 +92,88 @@ In order to connect to a room, you need to first create an access token.
90
92
 
91
93
  See [access token docs](https://docs.livekit.io/guides/access-tokens) for details
92
94
 
93
- ### Manually publish, mute, unpublish
95
+ ### Handling common track types
94
96
 
95
- When a video track is muted, the camera indicator will be turned off. When the video is unmuted, the same camera source and capture settings will be re-aquired.
97
+ While LiveKit is designed to be flexible, we've added a few shortcuts that makes working with common track types simple. For a user's camera, microphone, and screen share, you can enable them with the following `LocalParticipant` methods:
96
98
 
97
99
  ```typescript
98
- import { createLocalVideoTrack } from 'livekit-client';
100
+ const p = room.localParticipant;
101
+ // turn on the local user's camera and mic, this may trigger a browser prompt
102
+ // to ensure permissions are granted
103
+ await p.setCameraEnabled(true);
104
+ await p.setMicrophoneEnabled(true);
105
+
106
+ // start sharing the user's screen, this will trigger a browser prompt to select
107
+ // the screen to share.
108
+ await p.setScreenShareEnabled(true);
109
+
110
+ // disable camera to mute them, when muted, the user's camera indicator will be turned off
111
+ await p.setCameraEnabled(false);
112
+ ```
99
113
 
100
- const videoTrack = await createLocalVideoTrack();
114
+ Similarly, you can access these common track types on the other participants' end.
101
115
 
102
- const publication = await room.localParticipant.publishTrack(videoTrack, {
116
+ ```typescript
117
+ // get a RemoteParticipant by their sid
118
+ const p = room.participants.get('participant-sid');
119
+ if (p) {
120
+ // if the other user has enabled their camera, attach it to a new HTMLVideoElement
121
+ if (p.isCameraEnabled) {
122
+ const track = p.getTrack(Track.Source.Camera);
123
+ if (track?.isSubscribed) {
124
+ const videoElement = track.attach()
125
+ // do something with the element
126
+ }
127
+ }
128
+ }
129
+ ```
130
+
131
+ ### Advanced track manipulation
132
+
133
+ LiveKit lets you publish any track as long as it can be represented by a MediaStreamTrack. You can specify a name on the track in order to identify it later.
134
+
135
+ ```typescript
136
+
137
+ const pub = await room.localParticipant.publishTrack(mediaStreamTrack, {
103
138
  name: 'mytrack',
104
139
  simulcast: true,
105
- });
140
+ // if this should be treated like a camera feed, tag it as such
141
+ // supported known sources are .Camera, .Microphone, .ScreenShare
142
+ source: Track.Source.Camera,
143
+ })
106
144
 
107
- videoTrack.mute();
145
+ // you may mute or unpublish the track later
146
+ pub.setMuted(true);
108
147
 
109
- room.localParticipant.unpublishTrack(videoTrack);
148
+ room.localParticipant.unpublishTrack(mediaStreamTrack)
149
+ ```
150
+
151
+ ### Device management APIs
152
+
153
+ Users may have multiple input and output devices available. LiveKit will automatically use the one that's deemed as the `default` device on the system. You may also list and specify an alternative device to use.
154
+
155
+ We use the same deviceId as one returned by [MediaDevices.enumerateDevices()](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices).
156
+
157
+ #### Example listing and selecting a camera device
158
+
159
+ ```typescript
160
+ // list all microphone devices
161
+ const devices = await Room.getLocalDevices('audioinput');
162
+
163
+ // select last device
164
+ const device = devices[devices.length-1];
165
+
166
+ // in the current room, switch to the selected device and set
167
+ // it as default audioinput in the future.
168
+ await room.switchActiveDevice('audioinput', device.deviceId);
169
+ ```
170
+
171
+ You can also switch devices given a constraint. This could be useful on mobile devices to switch to a back-facing camera:
172
+
173
+ ```typescript
174
+ await videoTrack.restartTrack({
175
+ facingMode: 'environment',
176
+ });
110
177
  ```
111
178
 
112
179
  ### Audio playback
@@ -123,7 +190,7 @@ room.on(RoomEvent.AudioPlaybackStatusChanged, () => {
123
190
  // UI is necessary.
124
191
  ...
125
192
  button.onclick = () => {
126
- // this function *must* be triggered in an click/tap handler.
193
+ // startAudio *must* be called in an click/tap handler.
127
194
  room.startAudio().then(() => {
128
195
  // successful, UI can be removed now
129
196
  button.remove();
@@ -133,42 +200,6 @@ room.on(RoomEvent.AudioPlaybackStatusChanged, () => {
133
200
  });
134
201
  ```
135
202
 
136
- ### Screen share
137
-
138
- On desktop browsers, you may also share your screen with others. Refer to [browser compatibility](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia#browser_compatibility).
139
-
140
- Audio capture is supported only a subset of desktop browsers.
141
-
142
- ```typescript
143
- const tracks = await createLocalScreenTracks({
144
- // set to true in order to capture audio
145
- audio: true,
146
- // defaults to 1080p
147
- resolution: VideoPresets.fhd.resolution,
148
- });
149
-
150
- tracks.forEach((track) => {
151
- // publish video and audio of the screenshare
152
- room.localParticipant.publishTrack(track);
153
- });
154
- ```
155
-
156
- ### Switching input devices
157
-
158
- At any point after publishing, you can switch the input devices and other capture settings on both audio and video tracks. For example, switching between regular and selfie camera or changing microphone inputs. This is performed with `restartTrack` on the `LocalAudioTrack` or `LocalVideoTrack`.
159
-
160
- ```typescript
161
- await room.localParticipant.publishTrack(videoTrack);
162
- await room.localParticipant.publishTrack(audioTrack);
163
-
164
- await videoTrack.restartTrack({
165
- facingMode: 'environment',
166
- });
167
- await audioTrack.restartTrack({
168
- deviceId: 'microphoneId',
169
- });
170
- ```
171
-
172
203
  ### Configuring logging
173
204
 
174
205
  This library uses [loglevel](https://github.com/pimterry/loglevel) for its internal logs. You can change the effective log level with the `logLevel` field in `ConnectOptions`.
@@ -1,5 +1,5 @@
1
1
  import 'webrtc-adapter';
2
- import { ParticipantInfo, SpeakerInfo } from '../proto/livekit_models';
2
+ import { ParticipantInfo, Room, SpeakerInfo } from '../proto/livekit_models';
3
3
  import { AddTrackRequest, JoinResponse, SignalRequest, SignalTarget, TrackPublishedResponse, UpdateSubscription, UpdateTrackSettings, VideoQuality } from '../proto/livekit_rtc';
4
4
  import { Track } from '../room/track/Track';
5
5
  interface ConnectOpts {
@@ -36,6 +36,7 @@ export interface SignalClient {
36
36
  onLocalTrackPublished?: (res: TrackPublishedResponse) => void;
37
37
  onSpeakersChanged?: (res: SpeakerInfo[]) => void;
38
38
  onRemoteMuteChanged?: (trackSid: string, muted: boolean) => void;
39
+ onRoomUpdate?: (room: Room) => void;
39
40
  onLeave?: () => void;
40
41
  }
41
42
  export declare class WSSignalClient {
@@ -50,6 +51,7 @@ export declare class WSSignalClient {
50
51
  onNegotiateRequested?: () => void;
51
52
  onSpeakersChanged?: (res: SpeakerInfo[]) => void;
52
53
  onRemoteMuteChanged?: (trackSid: string, muted: boolean) => void;
54
+ onRoomUpdate?: (room: Room) => void;
53
55
  onLeave?: () => void;
54
56
  ws?: WebSocket;
55
57
  constructor(useJSON?: boolean);
@@ -39,6 +39,9 @@ class WSSignalClient {
39
39
  });
40
40
  }
41
41
  connect(url, token, opts) {
42
+ if (url.startsWith('http')) {
43
+ url = url.replace('http', 'ws');
44
+ }
42
45
  // strip trailing slash
43
46
  url = url.replace(/\/$/, '');
44
47
  url += '/rtc';
@@ -234,6 +237,11 @@ class WSSignalClient {
234
237
  this.onRemoteMuteChanged(msg.mute.sid, msg.mute.muted);
235
238
  }
236
239
  }
240
+ else if (msg.roomUpdate) {
241
+ if (this.onRoomUpdate) {
242
+ this.onRoomUpdate(msg.roomUpdate.room);
243
+ }
244
+ }
237
245
  else {
238
246
  loglevel_1.default.warn('unsupported message', msg);
239
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SignalClient.js","sourceRoot":"","sources":["../../src/api/SignalClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA2B;AAC3B,0BAAwB;AAExB,sDAW8B;AAC9B,2CAAiD;AAEjD,wCAAsD;AAqDtD,MAAa,cAAc;IA4BzB,YAAY,UAAmB,KAAK;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEK,IAAI,CACR,GAAW,EACX,KAAa,EACb,IAAoB;;YAEpB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;gBACzC,aAAa,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa;aACnC,CAAC,CAAC;YACH,OAAO,GAAmB,CAAC;QAC7B,CAAC;KAAA;IAEK,SAAS,CAAC,GAAW,EAAE,KAAa;;YACxC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;gBAC7B,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC;KAAA;IAED,OAAO,CACL,GAAW,EACX,KAAa,EACb,IAAiB;QAEjB,uBAAuB;QACvB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,IAAI,MAAM,CAAC;QACd,IAAI,MAAM,GAAG,iBAAiB,KAAK,aAAa,yBAAe,mBAAmB,iBAAO,EAAE,CAAC;QAC5F,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,MAAM,IAAI,cAAc,CAAC;SAC1B;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YACpC,MAAM,IAAI,mBAAmB,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;SAC/D;QAED,OAAO,IAAI,OAAO,CAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,kBAAG,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,GAAG,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;YACpB,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;YACvC,EAAE,CAAC,UAAU,GAAG,aAAa,CAAC;YAE9B,EAAE,CAAC,OAAO,GAAG,CAAO,EAAS,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;oBACZ,IAAI;wBACF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC;wBACnE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;4BACZ,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;4BAC9B,MAAM,CAAC,IAAI,wBAAe,CAAC,GAAG,CAAC,CAAC,CAAC;yBAClC;6BAAM;4BACL,MAAM,CAAC,IAAI,wBAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;yBAC/C;qBACF;oBAAC,OAAO,CAAC,EAAE;wBACV,MAAM,CAAC,IAAI,wBAAe,CAAC,0BAA0B,CAAC,CAAC,CAAC;qBACzD;oBACD,OAAO;iBACR;gBACD,uBAAuB;gBACvB,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YACzB,CAAC,CAAA,CAAC;YAEF,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;gBACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;gBACb,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,4DAA4D;oBAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;oBACxB,OAAO,EAAE,CAAC;iBACX;YACH,CAAC,CAAC;YAEF,EAAE,CAAC,SAAS,GAAG,CAAC,EAAgB,EAAE,EAAE;gBAClC,0DAA0D;gBAC1D,IAAI,GAAmB,CAAC;gBACxB,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE;oBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBACjC,GAAG,GAAG,4BAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACrC;qBAAM,IAAI,EAAE,CAAC,IAAI,YAAY,WAAW,EAAE;oBACzC,GAAG,GAAG,4BAAc,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBACtD;qBAAM;oBACL,kBAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;oBAChE,OAAO;iBACR;gBAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;oBACrB,2BAA2B;oBAC3B,IAAI,GAAG,CAAC,IAAI,EAAE;wBACZ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;wBACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;qBACnB;yBAAM;wBACL,MAAM,CAAC,IAAI,wBAAe,CAAC,+BAA+B,CAAC,CAAC,CAAC;qBAC9D;oBACD,OAAO;iBACR;gBAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC,CAAC;YAEF,EAAE,CAAC,OAAO,GAAG,CAAC,EAAc,EAAE,EAAE;gBAC9B,IAAI,CAAC,IAAI,CAAC,WAAW;oBAAE,OAAO;gBAE9B,kBAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;;QACH,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC;QACpC,MAAA,IAAI,CAAC,EAAE,0CAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IAED,8BAA8B;IAC9B,SAAS,CAAC,KAAgC;QACxC,kBAAG,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC;YACf,KAAK,EAAE,yBAAyB,CAAC,KAAK,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,kCAAkC;IAClC,UAAU,CAAC,MAAiC;QAC1C,kBAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAC5B,IAAI,CAAC,WAAW,CAAC;YACf,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC;SAC1C,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,SAA8B,EAAE,MAAoB;QACnE,kBAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC;YACf,OAAO,EAAE;gBACP,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBACxC,MAAM;aACP;SACF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,KAAc;QAC5C,IAAI,CAAC,WAAW,CAAC;YACf,IAAI,EAAE;gBACJ,GAAG,EAAE,QAAQ;gBACb,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAoB;QAC/B,IAAI,CAAC,WAAW,CAAC;YACf,QAAQ,EAAE,6BAAe,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB,CAAC,QAA6B;QACnD,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,sBAAsB,CAAC,GAAuB;QAC5C,IAAI,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,sBAAsB,CAAC,GAAc,EAAE,MAAsB;QAC3D,IAAI,CAAC,WAAW,CAAC;YACf,SAAS,EAAE;gBACT,QAAQ,EAAE,GAAG;gBACb,MAAM;aACP;SACF,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,2BAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,WAAW,CAAC,GAAkB;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACZ,MAAM,IAAI,wBAAe,CAAC,6CAA6C,CAAC,CAAC;SAC1E;QAED,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,2BAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACzD;aAAM;YACL,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,2BAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;SAClD;IACH,CAAC;IAEO,oBAAoB,CAAC,GAAmB;QAC9C,IAAI,GAAG,CAAC,MAAM,EAAE;YACd,MAAM,EAAE,GAAG,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACnD,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACnB;SACF;aAAM,IAAI,GAAG,CAAC,KAAK,EAAE;YACpB,MAAM,EAAE,GAAG,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aAClB;SACF;aAAM,IAAI,GAAG,CAAC,OAAO,EAAE;YACtB,MAAM,SAAS,GAAwB,IAAI,CAAC,KAAK,CAC/C,GAAG,CAAC,OAAO,CAAC,aAAa,CAC1B,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;aAC/C;SACF;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE;YACrB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACnD;SACF;aAAM,IAAI,GAAG,CAAC,cAAc,EAAE;YAC7B,IAAI,IAAI,CAAC,qBAAqB,EAAE;gBAC9B,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;aAChD;SACF;aAAM,IAAI,GAAG,CAAC,eAAe,EAAE;YAC9B,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;aACtD;SACF;aAAM,IAAI,GAAG,CAAC,KAAK,EAAE;YACpB,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,OAAO,EAAE,CAAC;aAChB;SACF;aAAM,IAAI,GAAG,CAAC,IAAI,EAAE;YACnB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACxD;SACF;aAAM;YACL,kBAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;SACtC;IACH,CAAC;IAEO,aAAa,CAAC,EAAS;QAC7B,kBAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;CACF;AAvQD,wCAuQC;AAED,SAAS,2BAA2B,CAClC,EAAsB;IAEtB,MAAM,GAAG,GAA8B;QACrC,IAAI,EAAE,OAAO;QACb,GAAG,EAAE,EAAE,CAAC,GAAG;KACZ,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE;QACf,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM;QACR;YACE,MAAM;KACT;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,yBAAyB,CAChC,GAAsD;IAEtD,MAAM,EAAE,GAAuB;QAC7B,GAAG,EAAE,GAAG,CAAC,GAAI;QACb,IAAI,EAAE,GAAG,CAAC,IAAK;KAChB,CAAC;IACF,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"SignalClient.js","sourceRoot":"","sources":["../../src/api/SignalClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ConnectOptions } from './options';
2
+ import Room from './room/Room';
3
+ export { version } from './version';
4
+ /**
5
+ * Connects to a LiveKit room
6
+ *
7
+ * ```typescript
8
+ * connect('wss://myhost.livekit.io', token, {
9
+ * // publish audio and video tracks on joining
10
+ * audio: true,
11
+ * video: true,
12
+ * captureDefaults: {
13
+ * facingMode: 'user',
14
+ * },
15
+ * })
16
+ * ```
17
+ * @param url URL to LiveKit server
18
+ * @param token AccessToken, a JWT token that includes authentication and room details
19
+ * @param options
20
+ */
21
+ export declare function connect(url: string, token: string, options?: ConnectOptions): Promise<Room>;
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.connect = exports.version = void 0;
16
+ const loglevel_1 = __importDefault(require("loglevel"));
17
+ const SignalClient_1 = require("./api/SignalClient");
18
+ const options_1 = require("./options");
19
+ const Room_1 = __importDefault(require("./room/Room"));
20
+ const create_1 = require("./room/track/create");
21
+ var version_1 = require("./version");
22
+ Object.defineProperty(exports, "version", { enumerable: true, get: function () { return version_1.version; } });
23
+ /**
24
+ * Connects to a LiveKit room
25
+ *
26
+ * ```typescript
27
+ * connect('wss://myhost.livekit.io', token, {
28
+ * // publish audio and video tracks on joining
29
+ * audio: true,
30
+ * video: true,
31
+ * captureDefaults: {
32
+ * facingMode: 'user',
33
+ * },
34
+ * })
35
+ * ```
36
+ * @param url URL to LiveKit server
37
+ * @param token AccessToken, a JWT token that includes authentication and room details
38
+ * @param options
39
+ */
40
+ function connect(url, token, options) {
41
+ var _a;
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ // set defaults
44
+ options || (options = {});
45
+ options.logLevel || (options.logLevel = options_1.LogLevel.info);
46
+ if (options.audio === undefined)
47
+ options.audio = false;
48
+ if (options.video === undefined)
49
+ options.video = false;
50
+ loglevel_1.default.setLevel(options.logLevel);
51
+ const config = (_a = options.rtcConfig) !== null && _a !== void 0 ? _a : {};
52
+ if (options.iceServers) {
53
+ config.iceServers = options.iceServers;
54
+ }
55
+ const client = new SignalClient_1.WSSignalClient();
56
+ const room = new Room_1.default(client, config);
57
+ // connect to room
58
+ yield room.connect(url, token, {
59
+ autoSubscribe: options === null || options === void 0 ? void 0 : options.autoSubscribe,
60
+ });
61
+ // save default publish options
62
+ if (options.publishDefaults) {
63
+ room.defaultPublishOptions = options.publishDefaults;
64
+ }
65
+ if (options.captureDefaults) {
66
+ room.defaultCaptureOptions = options.captureDefaults;
67
+ }
68
+ const publishAudio = options.audio;
69
+ const publishVideo = options.video;
70
+ if (publishAudio || publishVideo) {
71
+ setTimeout(() => __awaiter(this, void 0, void 0, function* () {
72
+ const tracks = yield create_1.createLocalTracks({
73
+ audio: publishAudio,
74
+ video: publishVideo,
75
+ });
76
+ yield Promise.all(tracks.map((track) => room.localParticipant.publishTrack(track)));
77
+ }));
78
+ }
79
+ return room;
80
+ });
81
+ }
82
+ exports.connect = connect;
83
+ //# sourceMappingURL=connect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connect.js","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAA2B;AAC3B,qDAAoD;AACpD,uCAGmB;AACnB,uDAA+B;AAC/B,gDAAwD;AAGxD,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAEhB;;;;;;;;;;;;;;;;GAgBG;AACH,SAAsB,OAAO,CAC3B,GAAW,EACX,KAAa,EACb,OAAwB;;;QAExB,eAAe;QACf,OAAO,KAAP,OAAO,GAAK,EAAE,EAAC;QACf,OAAO,CAAC,QAAQ,KAAhB,OAAO,CAAC,QAAQ,GAAK,kBAAQ,CAAC,IAAI,EAAC;QACnC,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACvD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAEvD,kBAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE/B,MAAM,MAAM,GAAqB,MAAA,OAAO,CAAC,SAAS,mCAAI,EAAE,CAAC;QACzD,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;SACxC;QAED,MAAM,MAAM,GAAG,IAAI,6BAAc,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,cAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtC,kBAAkB;QAClB,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE;YAC7B,aAAa,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;SACtC,CAAC,CAAC;QAEH,+BAA+B;QAC/B,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;SACtD;QACD,IAAI,OAAO,CAAC,eAAe,EAAE;YAC3B,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;SACtD;QAED,MAAM,YAAY,GAAY,OAAO,CAAC,KAAK,CAAC;QAC5C,MAAM,YAAY,GAAY,OAAO,CAAC,KAAK,CAAC;QAC5C,IAAI,YAAY,IAAI,YAAY,EAAE;YAChC,UAAU,CAAC,GAAS,EAAE;gBACpB,MAAM,MAAM,GAAG,MAAM,0BAAiB,CAAC;oBACrC,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAE,YAAY;iBACpB,CAAC,CAAC;gBACH,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAC1B,CAAC,KAAoC,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CACpF,CAAC,CAAC;YACL,CAAC,CAAA,CAAC,CAAC;SACJ;QAED,OAAO,IAAI,CAAC;;CACb;AAjDD,0BAiDC"}
package/dist/index.d.ts CHANGED
@@ -12,10 +12,11 @@ import RemoteAudioTrack from './room/track/RemoteAudioTrack';
12
12
  import RemoteTrackPublication from './room/track/RemoteTrackPublication';
13
13
  import RemoteVideoTrack from './room/track/RemoteVideoTrack';
14
14
  import TrackPublication from './room/track/TrackPublication';
15
- export * from './livekit';
15
+ export * from './connect';
16
16
  export * from './options';
17
17
  export * from './room/errors';
18
18
  export * from './room/events';
19
+ export * from './room/track/create';
19
20
  export * from './room/track/options';
20
21
  export * from './room/track/Track';
21
22
  export * from './room/track/types';
package/dist/index.js CHANGED
@@ -55,10 +55,11 @@ const RemoteVideoTrack_1 = __importDefault(require("./room/track/RemoteVideoTrac
55
55
  exports.RemoteVideoTrack = RemoteVideoTrack_1.default;
56
56
  const TrackPublication_1 = __importDefault(require("./room/track/TrackPublication"));
57
57
  exports.TrackPublication = TrackPublication_1.default;
58
- __exportStar(require("./livekit"), exports);
58
+ __exportStar(require("./connect"), exports);
59
59
  __exportStar(require("./options"), exports);
60
60
  __exportStar(require("./room/errors"), exports);
61
61
  __exportStar(require("./room/events"), exports);
62
+ __exportStar(require("./room/track/create"), exports);
62
63
  __exportStar(require("./room/track/options"), exports);
63
64
  __exportStar(require("./room/track/Track"), exports);
64
65
  __exportStar(require("./room/track/types"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAAyD;AA0BvD,gGA1BO,gCAAe,OA0BP;AAzBjB,qDAAmD;AAqCjD,6FArCO,0BAAY,OAqCP;AApCd,2FAAmE;AA2BjE,2BA3BK,0BAAgB,CA2BL;AA1BlB,iFAAyD;AAwBvD,sBAxBK,qBAAW,CAwBL;AAvBb,6FAAqE;AAwBnE,4BAxBK,2BAAiB,CAwBL;AAvBnB,oDAA8C;AAmB5C,eAnBK,cAAI,CAmBL;AACJ,0FApBa,gBAAS,OAoBb;AAnBX,mFAA2D;AAwBzD,0BAxBK,yBAAe,CAwBL;AAvBjB,yEAAiD;AAyB/C,qBAzBK,oBAAU,CAyBL;AAxBZ,+FAAuE;AAyBrE,gCAzBK,+BAAqB,CAyBL;AAxBvB,mFAA2D;AAsBzD,0BAtBK,yBAAe,CAsBL;AArBjB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAvBlB,iGAAyE;AAyBvE,iCAzBK,gCAAsB,CAyBL;AAxBxB,qFAA6D;AAuB3D,2BAvBK,0BAAgB,CAuBL;AAtBlB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAtBlB,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAAyD;AA2BvD,gGA3BO,gCAAe,OA2BP;AA1BjB,qDAAmD;AAsCjD,6FAtCO,0BAAY,OAsCP;AArCd,2FAAmE;AA4BjE,2BA5BK,0BAAgB,CA4BL;AA3BlB,iFAAyD;AAyBvD,sBAzBK,qBAAW,CAyBL;AAxBb,6FAAqE;AAyBnE,4BAzBK,2BAAiB,CAyBL;AAxBnB,oDAA8C;AAoB5C,eApBK,cAAI,CAoBL;AACJ,0FArBa,gBAAS,OAqBb;AApBX,mFAA2D;AAyBzD,0BAzBK,yBAAe,CAyBL;AAxBjB,yEAAiD;AA0B/C,qBA1BK,oBAAU,CA0BL;AAzBZ,+FAAuE;AA0BrE,gCA1BK,+BAAqB,CA0BL;AAzBvB,mFAA2D;AAuBzD,0BAvBK,yBAAe,CAuBL;AAtBjB,qFAA6D;AAyB3D,2BAzBK,0BAAgB,CAyBL;AAxBlB,iGAAyE;AA0BvE,iCA1BK,gCAAsB,CA0BL;AAzBxB,qFAA6D;AAwB3D,2BAxBK,0BAAgB,CAwBL;AAvBlB,qFAA6D;AAyB3D,2BAzBK,0BAAgB,CAyBL;AAvBlB,4CAA0B;AAC1B,4CAA0B;AAC1B,gDAA8B;AAC9B,gDAA8B;AAC9B,sDAAoC;AACpC,uDAAqC;AACrC,qDAAmC;AACnC,qDAAmC;AACnC,4CAA0B"}
package/dist/options.d.ts CHANGED
@@ -1,5 +1,4 @@
1
- import LocalTrack from './room/track/LocalTrack';
2
- import { CreateLocalTracksOptions, VideoCodec, VideoEncoding } from './room/track/options';
1
+ import { CreateLocalTracksOptions, TrackCaptureDefaults, TrackPublishDefaults } from './room/track/options';
3
2
  /**
4
3
  * if video or audio tracks are created as part of [[connect]], it'll automatically
5
4
  * publish those tracks to the room.
@@ -18,18 +17,25 @@ export interface ConnectOptions extends CreateLocalTracksOptions {
18
17
  */
19
18
  rtcConfig?: RTCConfiguration;
20
19
  /**
21
- * Tracks to publish to the room after joining. These can be obtained by calling
22
- * [[createLocalTracks]]. when this is passed in, it'll ignore audio and video options
20
+ * capture and publish audio track on connect, defaults to false
21
+ *
22
+ * If this option is used, you will not be notified if user denies capture permission.
23
23
  */
24
- tracks?: LocalTrack[] | MediaStreamTrack[];
25
- /** see [[TrackPublishOptions.videoEncoding]] */
26
- videoEncoding?: VideoEncoding;
27
- /** see [[TrackPublishOptions.videoCodec]] */
28
- videoCodec?: VideoCodec;
29
- /** see [[TrackPublishOptions.audioBitrate]] */
30
- audioBitrate?: number;
31
- /** see [[TrackPublishOptions.simulcast]] */
32
- simulcast?: boolean;
24
+ audio?: boolean;
25
+ /**
26
+ * capture and publish video track on connect, defaults to false
27
+ *
28
+ * If this option is used, you will not be notified if user denies capture permission.
29
+ */
30
+ video?: boolean;
31
+ /**
32
+ * default options to use when capturing user media
33
+ */
34
+ captureDefaults?: TrackCaptureDefaults;
35
+ /**
36
+ * default options to use when publishing tracks
37
+ */
38
+ publishDefaults?: TrackPublishDefaults;
33
39
  }
34
40
  export declare enum LogLevel {
35
41
  trace = "trace",
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;AA2CA,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;AAkDA,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,6BAAiB,CAAA;AACnB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB"}
@@ -8,6 +8,15 @@ export declare enum TrackType {
8
8
  }
9
9
  export declare function trackTypeFromJSON(object: any): TrackType;
10
10
  export declare function trackTypeToJSON(object: TrackType): string;
11
+ export declare enum TrackSource {
12
+ UNKNOWN = 0,
13
+ CAMERA = 1,
14
+ MICROPHONE = 2,
15
+ SCREEN_SHARE = 3,
16
+ UNRECOGNIZED = -1
17
+ }
18
+ export declare function trackSourceFromJSON(object: any): TrackSource;
19
+ export declare function trackSourceToJSON(object: TrackSource): string;
11
20
  export interface Room {
12
21
  sid: string;
13
22
  name: string;
@@ -16,6 +25,8 @@ export interface Room {
16
25
  creationTime: number;
17
26
  turnPassword: string;
18
27
  enabledCodecs: Codec[];
28
+ metadata: string;
29
+ numParticipants: number;
19
30
  }
20
31
  export interface Codec {
21
32
  mime: string;
@@ -59,6 +70,10 @@ export interface TrackInfo {
59
70
  height: number;
60
71
  /** true if track is simulcasted */
61
72
  simulcast: boolean;
73
+ /** true if DTX (Discontinuous Transmission) is disabled for audio */
74
+ disableDtx: boolean;
75
+ /** source of media */
76
+ source: TrackSource;
62
77
  }
63
78
  /** new DataPacket API */
64
79
  export interface DataPacket {