livekit-client 2.11.0 → 2.11.2
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/dist/livekit-client.esm.mjs +191 -209
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/track/create.d.ts +2 -1
- package/dist/src/room/track/create.d.ts.map +1 -1
- package/dist/ts4.2/src/room/track/create.d.ts +2 -1
- package/package.json +1 -1
- package/src/room/participant/LocalParticipant.ts +21 -47
- package/src/room/track/create.ts +26 -11
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,EAUL,eAAe,EACf,qBAAqB,EAatB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAWrE,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,iBAAiB,EAEvB,MAAM,QAAQ,CAAC;AAEhB,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"LocalParticipant.d.ts","sourceRoot":"","sources":["../../../../src/room/participant/LocalParticipant.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { LoggerOptions } from '../types';
|
1
2
|
import LocalAudioTrack from './LocalAudioTrack';
|
2
3
|
import type LocalTrack from './LocalTrack';
|
3
4
|
import LocalVideoTrack from './LocalVideoTrack';
|
@@ -8,7 +9,7 @@ import type { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureO
|
|
8
9
|
* the user instead of two separate ones.
|
9
10
|
* @param options
|
10
11
|
*/
|
11
|
-
export declare function createLocalTracks(options?: CreateLocalTracksOptions): Promise<Array<LocalTrack>>;
|
12
|
+
export declare function createLocalTracks(options?: CreateLocalTracksOptions, loggerOptions?: LoggerOptions): Promise<Array<LocalTrack>>;
|
12
13
|
/**
|
13
14
|
* Creates a [[LocalVideoTrack]] with getUserMedia()
|
14
15
|
* @param options
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/room/track/create.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../../src/room/track/create.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,WAAW,CAAC;AASnB;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,CAAC,EAAE,wBAAwB,EAClC,aAAa,CAAC,EAAE,aAAa,GAC5B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAuH5B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED,wBAAsB,qBAAqB,CACzC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAM1B;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CA4B5B"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { LoggerOptions } from '../types';
|
1
2
|
import LocalAudioTrack from './LocalAudioTrack';
|
2
3
|
import type LocalTrack from './LocalTrack';
|
3
4
|
import LocalVideoTrack from './LocalVideoTrack';
|
@@ -8,7 +9,7 @@ import type { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureO
|
|
8
9
|
* the user instead of two separate ones.
|
9
10
|
* @param options
|
10
11
|
*/
|
11
|
-
export declare function createLocalTracks(options?: CreateLocalTracksOptions): Promise<Array<LocalTrack>>;
|
12
|
+
export declare function createLocalTracks(options?: CreateLocalTracksOptions, loggerOptions?: LoggerOptions): Promise<Array<LocalTrack>>;
|
12
13
|
/**
|
13
14
|
* Creates a [[LocalVideoTrack]] with getUserMedia()
|
14
15
|
* @param options
|
package/package.json
CHANGED
@@ -55,6 +55,7 @@ import LocalTrack from '../track/LocalTrack';
|
|
55
55
|
import LocalTrackPublication from '../track/LocalTrackPublication';
|
56
56
|
import LocalVideoTrack, { videoLayersFromEncodings } from '../track/LocalVideoTrack';
|
57
57
|
import { Track } from '../track/Track';
|
58
|
+
import { createLocalTracks } from '../track/create';
|
58
59
|
import type {
|
59
60
|
AudioCaptureOptions,
|
60
61
|
BackupVideoCodec,
|
@@ -65,8 +66,6 @@ import type {
|
|
65
66
|
} from '../track/options';
|
66
67
|
import { ScreenSharePresets, VideoPresets, isBackupCodec } from '../track/options';
|
67
68
|
import {
|
68
|
-
constraintsForOptions,
|
69
|
-
extractProcessorsFromOptions,
|
70
69
|
getLogContextFromTrack,
|
71
70
|
getTrackSourceFromProto,
|
72
71
|
mergeDefaultOptions,
|
@@ -107,7 +106,6 @@ import {
|
|
107
106
|
computeTrackBackupEncodings,
|
108
107
|
computeVideoEncodings,
|
109
108
|
getDefaultDegradationPreference,
|
110
|
-
mediaTrackToLocalTrack,
|
111
109
|
} from './publishUtils';
|
112
110
|
|
113
111
|
const STREAM_CHUNK_SIZE = 15_000;
|
@@ -617,61 +615,37 @@ export default class LocalParticipant extends Participant {
|
|
617
615
|
this.roomOptions?.videoCaptureDefaults,
|
618
616
|
);
|
619
617
|
|
620
|
-
const { audioProcessor, videoProcessor, optionsWithoutProcessor } =
|
621
|
-
extractProcessorsFromOptions(mergedOptionsWithProcessors);
|
622
|
-
|
623
|
-
const constraints = constraintsForOptions(optionsWithoutProcessor);
|
624
|
-
let stream: MediaStream | undefined;
|
625
618
|
try {
|
626
|
-
|
619
|
+
const tracks = await createLocalTracks(mergedOptionsWithProcessors, {
|
620
|
+
loggerName: this.roomOptions.loggerName,
|
621
|
+
loggerContextCb: () => this.logContext,
|
622
|
+
});
|
623
|
+
const localTracks = tracks.map((track) => {
|
624
|
+
if (isAudioTrack(track)) {
|
625
|
+
this.microphoneError = undefined;
|
626
|
+
track.setAudioContext(this.audioContext);
|
627
|
+
track.source = Track.Source.Microphone;
|
628
|
+
this.emit(ParticipantEvent.AudioStreamAcquired);
|
629
|
+
}
|
630
|
+
if (isVideoTrack(track)) {
|
631
|
+
this.cameraError = undefined;
|
632
|
+
track.source = Track.Source.Camera;
|
633
|
+
}
|
634
|
+
return track;
|
635
|
+
});
|
636
|
+
return localTracks;
|
627
637
|
} catch (err) {
|
628
638
|
if (err instanceof Error) {
|
629
|
-
if (
|
639
|
+
if (options.audio) {
|
630
640
|
this.microphoneError = err;
|
631
641
|
}
|
632
|
-
if (
|
642
|
+
if (options.video) {
|
633
643
|
this.cameraError = err;
|
634
644
|
}
|
635
645
|
}
|
636
646
|
|
637
647
|
throw err;
|
638
648
|
}
|
639
|
-
|
640
|
-
if (constraints.audio) {
|
641
|
-
this.microphoneError = undefined;
|
642
|
-
this.emit(ParticipantEvent.AudioStreamAcquired);
|
643
|
-
}
|
644
|
-
if (constraints.video) {
|
645
|
-
this.cameraError = undefined;
|
646
|
-
}
|
647
|
-
|
648
|
-
return Promise.all(
|
649
|
-
stream.getTracks().map(async (mediaStreamTrack) => {
|
650
|
-
const isAudio = mediaStreamTrack.kind === 'audio';
|
651
|
-
let trackConstraints: MediaTrackConstraints | undefined;
|
652
|
-
const conOrBool = isAudio ? constraints.audio : constraints.video;
|
653
|
-
if (typeof conOrBool !== 'boolean') {
|
654
|
-
trackConstraints = conOrBool;
|
655
|
-
}
|
656
|
-
const track = mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints, {
|
657
|
-
loggerName: this.roomOptions.loggerName,
|
658
|
-
loggerContextCb: () => this.logContext,
|
659
|
-
});
|
660
|
-
if (track.kind === Track.Kind.Video) {
|
661
|
-
track.source = Track.Source.Camera;
|
662
|
-
} else if (track.kind === Track.Kind.Audio) {
|
663
|
-
track.source = Track.Source.Microphone;
|
664
|
-
track.setAudioContext(this.audioContext);
|
665
|
-
}
|
666
|
-
track.mediaStream = stream;
|
667
|
-
if (isAudioTrack(track) && audioProcessor) {
|
668
|
-
await track.setProcessor(audioProcessor);
|
669
|
-
} else if (isVideoTrack(track) && videoProcessor) {
|
670
|
-
await track.setProcessor(videoProcessor);
|
671
|
-
}
|
672
|
-
return track;
|
673
|
-
}),
|
674
|
-
);
|
675
649
|
}
|
676
650
|
|
677
651
|
/**
|
package/src/room/track/create.ts
CHANGED
@@ -2,6 +2,7 @@ import DeviceManager from '../DeviceManager';
|
|
2
2
|
import { audioDefaults, videoDefaults } from '../defaults';
|
3
3
|
import { DeviceUnsupportedError, TrackInvalidError } from '../errors';
|
4
4
|
import { mediaTrackToLocalTrack } from '../participant/publishUtils';
|
5
|
+
import type { LoggerOptions } from '../types';
|
5
6
|
import { isAudioTrack, isSafari17, isVideoTrack, unwrapConstraint } from '../utils';
|
6
7
|
import LocalAudioTrack from './LocalAudioTrack';
|
7
8
|
import type LocalTrack from './LocalTrack';
|
@@ -29,6 +30,7 @@ import {
|
|
29
30
|
*/
|
30
31
|
export async function createLocalTracks(
|
31
32
|
options?: CreateLocalTracksOptions,
|
33
|
+
loggerOptions?: LoggerOptions,
|
32
34
|
): Promise<Array<LocalTrack>> {
|
33
35
|
// set default options to true
|
34
36
|
const internalOptions = { ...(options ?? {}) };
|
@@ -62,9 +64,19 @@ export async function createLocalTracks(
|
|
62
64
|
deviceId: { ideal: deviceId },
|
63
65
|
};
|
64
66
|
}
|
65
|
-
|
66
|
-
|
67
|
-
|
67
|
+
// TODO if internal options don't have device Id specified, set it to 'default'
|
68
|
+
if (
|
69
|
+
internalOptions.audio === true ||
|
70
|
+
(typeof internalOptions.audio === 'object' && !internalOptions.audio.deviceId)
|
71
|
+
) {
|
72
|
+
internalOptions.audio = { deviceId: 'default' };
|
73
|
+
}
|
74
|
+
if (
|
75
|
+
internalOptions.video === true ||
|
76
|
+
(typeof internalOptions.video === 'object' && !internalOptions.video.deviceId)
|
77
|
+
) {
|
78
|
+
internalOptions.video = { deviceId: 'default' };
|
79
|
+
}
|
68
80
|
const { audioProcessor, videoProcessor } = extractProcessorsFromOptions(internalOptions);
|
69
81
|
const opts = mergeDefaultOptions(internalOptions, audioDefaults, videoDefaults);
|
70
82
|
const constraints = constraintsForOptions(opts);
|
@@ -108,7 +120,7 @@ export async function createLocalTracks(
|
|
108
120
|
trackConstraints = { deviceId: newDeviceId };
|
109
121
|
}
|
110
122
|
|
111
|
-
const track = mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints);
|
123
|
+
const track = mediaTrackToLocalTrack(mediaStreamTrack, trackConstraints, loggerOptions);
|
112
124
|
if (track.kind === Track.Kind.Video) {
|
113
125
|
track.source = Track.Source.Camera;
|
114
126
|
} else if (track.kind === Track.Kind.Audio) {
|
@@ -129,11 +141,14 @@ export async function createLocalTracks(
|
|
129
141
|
if (!attemptExactMatch) {
|
130
142
|
throw e;
|
131
143
|
}
|
132
|
-
return createLocalTracks(
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
144
|
+
return createLocalTracks(
|
145
|
+
{
|
146
|
+
...options,
|
147
|
+
audio: retryAudioOptions,
|
148
|
+
video: retryVideoOptions,
|
149
|
+
},
|
150
|
+
loggerOptions,
|
151
|
+
);
|
137
152
|
}
|
138
153
|
}
|
139
154
|
|
@@ -146,7 +161,7 @@ export async function createLocalVideoTrack(
|
|
146
161
|
): Promise<LocalVideoTrack> {
|
147
162
|
const tracks = await createLocalTracks({
|
148
163
|
audio: false,
|
149
|
-
video: options,
|
164
|
+
video: options ?? true,
|
150
165
|
});
|
151
166
|
return <LocalVideoTrack>tracks[0];
|
152
167
|
}
|
@@ -155,7 +170,7 @@ export async function createLocalAudioTrack(
|
|
155
170
|
options?: AudioCaptureOptions,
|
156
171
|
): Promise<LocalAudioTrack> {
|
157
172
|
const tracks = await createLocalTracks({
|
158
|
-
audio: options,
|
173
|
+
audio: options ?? true,
|
159
174
|
video: false,
|
160
175
|
});
|
161
176
|
return <LocalAudioTrack>tracks[0];
|