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.
- package/.eslintrc.js +1 -0
- package/.github/workflows/publish.yaml +1 -3
- package/README.md +76 -45
- package/dist/api/SignalClient.d.ts +3 -1
- package/dist/api/SignalClient.js +8 -0
- package/dist/api/SignalClient.js.map +1 -1
- package/dist/connect.d.ts +21 -0
- package/dist/connect.js +83 -0
- package/dist/connect.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/options.d.ts +19 -13
- package/dist/options.js.map +1 -1
- package/dist/proto/livekit_models.d.ts +15 -0
- package/dist/proto/livekit_models.js +129 -1
- package/dist/proto/livekit_models.js.map +1 -1
- package/dist/proto/livekit_rtc.d.ts +16 -1
- package/dist/proto/livekit_rtc.js +116 -1
- package/dist/proto/livekit_rtc.js.map +1 -1
- package/dist/room/DeviceManager.d.ts +7 -0
- package/dist/room/DeviceManager.js +62 -0
- package/dist/room/DeviceManager.js.map +1 -0
- package/dist/room/RTCEngine.d.ts +1 -1
- package/dist/room/RTCEngine.js +8 -7
- package/dist/room/RTCEngine.js.map +1 -1
- package/dist/room/Room.d.ts +34 -2
- package/dist/room/Room.js +92 -2
- package/dist/room/Room.js.map +1 -1
- package/dist/room/defaults.d.ts +5 -0
- package/dist/room/defaults.js +29 -0
- package/dist/room/defaults.js.map +1 -0
- package/dist/room/events.d.ts +33 -4
- package/dist/room/events.js +32 -3
- package/dist/room/events.js.map +1 -1
- package/dist/room/participant/LocalParticipant.d.ts +25 -0
- package/dist/room/participant/LocalParticipant.js +162 -45
- package/dist/room/participant/LocalParticipant.js.map +1 -1
- package/dist/room/participant/Participant.d.ts +17 -0
- package/dist/room/participant/Participant.js +53 -0
- package/dist/room/participant/Participant.js.map +1 -1
- package/dist/room/participant/RemoteParticipant.d.ts +2 -0
- package/dist/room/participant/RemoteParticipant.js +23 -3
- package/dist/room/participant/RemoteParticipant.js.map +1 -1
- package/dist/room/track/LocalAudioTrack.d.ts +3 -0
- package/dist/room/track/LocalAudioTrack.js +37 -0
- package/dist/room/track/LocalAudioTrack.js.map +1 -1
- package/dist/room/track/LocalTrack.d.ts +6 -2
- package/dist/room/track/LocalTrack.js +39 -8
- package/dist/room/track/LocalTrack.js.map +1 -1
- package/dist/room/track/LocalTrackPublication.d.ts +6 -3
- package/dist/room/track/LocalTrackPublication.js +21 -2
- package/dist/room/track/LocalTrackPublication.js.map +1 -1
- package/dist/room/track/LocalVideoTrack.d.ts +3 -2
- package/dist/room/track/LocalVideoTrack.js +48 -16
- package/dist/room/track/LocalVideoTrack.js.map +1 -1
- package/dist/room/track/RemoteAudioTrack.d.ts +2 -0
- package/dist/room/track/RemoteAudioTrack.js +8 -0
- package/dist/room/track/RemoteAudioTrack.js.map +1 -1
- package/dist/room/track/RemoteVideoTrack.d.ts +1 -0
- package/dist/room/track/RemoteVideoTrack.js +6 -1
- package/dist/room/track/RemoteVideoTrack.js.map +1 -1
- package/dist/room/track/Track.d.ts +14 -2
- package/dist/room/track/Track.js +42 -0
- package/dist/room/track/Track.js.map +1 -1
- package/dist/room/track/TrackPublication.d.ts +1 -0
- package/dist/room/track/TrackPublication.js +2 -0
- package/dist/room/track/TrackPublication.js.map +1 -1
- package/dist/room/track/create.d.ts +23 -0
- package/dist/{livekit.js → room/track/create.js} +75 -110
- package/dist/room/track/create.js.map +1 -0
- package/dist/room/track/options.d.ts +76 -20
- package/dist/room/track/options.js +11 -6
- package/dist/room/track/options.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/example/index.html +51 -20
- package/example/sample.ts +200 -87
- package/example/webpack.config.js +8 -2
- package/package.json +2 -2
- package/dist/livekit.d.ts +0 -44
- package/dist/livekit.js.map +0 -1
package/.eslintrc.js
CHANGED
@@ -48,9 +48,7 @@ jobs:
|
|
48
48
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
49
49
|
|
50
50
|
- name: S3 Upload
|
51
|
-
|
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
|
-
###
|
95
|
+
### Handling common track types
|
94
96
|
|
95
|
-
|
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
|
-
|
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
|
-
|
114
|
+
Similarly, you can access these common track types on the other participants' end.
|
101
115
|
|
102
|
-
|
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
|
-
|
145
|
+
// you may mute or unpublish the track later
|
146
|
+
pub.setMuted(true);
|
108
147
|
|
109
|
-
room.localParticipant.unpublishTrack(
|
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
|
-
//
|
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);
|
package/dist/api/SignalClient.js
CHANGED
@@ -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;
|
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>;
|
package/dist/connect.js
ADDED
@@ -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 './
|
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("./
|
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;
|
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
|
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
|
-
*
|
22
|
-
*
|
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
|
-
|
25
|
-
/**
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
/**
|
32
|
-
|
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",
|
package/dist/options.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;
|
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 {
|