livekit-client 2.13.2 → 2.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/dist/livekit-client.esm.mjs +23 -2
- 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/track/LocalTrack.d.ts.map +1 -1
- package/dist/src/room/track/record.d.ts +8 -1
- package/dist/src/room/track/record.d.ts.map +1 -1
- package/dist/ts4.2/src/room/track/record.d.ts +8 -1
- package/package.json +4 -1
- package/src/room/track/LocalTrack.ts +9 -1
- package/src/room/track/record.ts +25 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LocalTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAMvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,KAAK,EAAgC,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,kBAAkB,
|
1
|
+
{"version":3,"file":"LocalTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalTrack.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import type LocalTrack from './LocalTrack';
|
2
|
-
|
2
|
+
declare const RecorderBase: {
|
3
|
+
new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
|
4
|
+
prototype: MediaRecorder;
|
5
|
+
isTypeSupported(type: string): boolean;
|
6
|
+
};
|
7
|
+
export declare class LocalTrackRecorder<T extends LocalTrack> extends RecorderBase {
|
3
8
|
byteStream: ReadableStream<Uint8Array>;
|
4
9
|
constructor(track: T, options?: MediaRecorderOptions);
|
5
10
|
}
|
11
|
+
export declare function isRecordingSupported(): boolean;
|
12
|
+
export {};
|
6
13
|
//# sourceMappingURL=record.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/room/track/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../../src/room/track/record.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAa3C,QAAA,MAAM,YAAY;;;;CAEuC,CAAC;AAE1D,qBAAa,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,YAAY;IACxE,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAE3B,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB;CAiDrD;AAGD,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import type LocalTrack from './LocalTrack';
|
2
|
-
|
2
|
+
declare const RecorderBase: {
|
3
|
+
new (stream: MediaStream, options?: MediaRecorderOptions): MediaRecorder;
|
4
|
+
prototype: MediaRecorder;
|
5
|
+
isTypeSupported(type: string): boolean;
|
6
|
+
};
|
7
|
+
export declare class LocalTrackRecorder<T extends LocalTrack> extends RecorderBase {
|
3
8
|
byteStream: ReadableStream<Uint8Array>;
|
4
9
|
constructor(track: T, options?: MediaRecorderOptions);
|
5
10
|
}
|
11
|
+
export declare function isRecordingSupported(): boolean;
|
12
|
+
export {};
|
6
13
|
//# sourceMappingURL=record.d.ts.map
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "livekit-client",
|
3
|
-
"version": "2.13.
|
3
|
+
"version": "2.13.3",
|
4
4
|
"description": "JavaScript/TypeScript client SDK for LiveKit",
|
5
5
|
"main": "./dist/livekit-client.umd.js",
|
6
6
|
"unpkg": "./dist/livekit-client.umd.js",
|
@@ -46,6 +46,9 @@
|
|
46
46
|
"typed-emitter": "^2.1.0",
|
47
47
|
"webrtc-adapter": "^9.0.1"
|
48
48
|
},
|
49
|
+
"peerDependencies": {
|
50
|
+
"@types/dom-mediacapture-record": "^1"
|
51
|
+
},
|
49
52
|
"devDependencies": {
|
50
53
|
"@babel/core": "7.27.1",
|
51
54
|
"@babel/preset-env": "7.27.2",
|
@@ -9,7 +9,7 @@ import { compareVersions, isMobile, sleep, unwrapConstraint } from '../utils';
|
|
9
9
|
import { Track, attachToElement, detachTrack } from './Track';
|
10
10
|
import type { VideoCodec } from './options';
|
11
11
|
import type { TrackProcessor } from './processor/types';
|
12
|
-
import { LocalTrackRecorder } from './record';
|
12
|
+
import { LocalTrackRecorder, isRecordingSupported } from './record';
|
13
13
|
import type { ReplaceTrackOptions } from './types';
|
14
14
|
|
15
15
|
const DEFAULT_DIMENSIONS_TIMEOUT = 1000;
|
@@ -597,6 +597,14 @@ export default abstract class LocalTrack<
|
|
597
597
|
|
598
598
|
/** @internal */
|
599
599
|
startPreConnectBuffer(timeslice: number = 100) {
|
600
|
+
if (!isRecordingSupported()) {
|
601
|
+
this.log.warn(
|
602
|
+
'MediaRecorder is not available, cannot start preconnect buffer',
|
603
|
+
this.logContext,
|
604
|
+
);
|
605
|
+
return;
|
606
|
+
}
|
607
|
+
|
600
608
|
if (!this.localTrackRecorder) {
|
601
609
|
this.localTrackRecorder = new LocalTrackRecorder(this, {
|
602
610
|
mimeType: 'audio/webm;codecs=opus',
|
package/src/room/track/record.ts
CHANGED
@@ -1,9 +1,28 @@
|
|
1
1
|
import type LocalTrack from './LocalTrack';
|
2
2
|
|
3
|
-
|
3
|
+
// Check if MediaRecorder is available
|
4
|
+
const isMediaRecorderAvailable = typeof MediaRecorder !== 'undefined';
|
5
|
+
|
6
|
+
// Fallback class for environments without MediaRecorder
|
7
|
+
class FallbackRecorder {
|
8
|
+
constructor() {
|
9
|
+
throw new Error('MediaRecorder is not available in this environment');
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
// Use conditional inheritance to avoid parse-time errors
|
14
|
+
const RecorderBase = isMediaRecorderAvailable
|
15
|
+
? MediaRecorder
|
16
|
+
: (FallbackRecorder as unknown as typeof MediaRecorder);
|
17
|
+
|
18
|
+
export class LocalTrackRecorder<T extends LocalTrack> extends RecorderBase {
|
4
19
|
byteStream: ReadableStream<Uint8Array>;
|
5
20
|
|
6
21
|
constructor(track: T, options?: MediaRecorderOptions) {
|
22
|
+
if (!isMediaRecorderAvailable) {
|
23
|
+
throw new Error('MediaRecorder is not available in this environment');
|
24
|
+
}
|
25
|
+
|
7
26
|
super(new MediaStream([track.mediaStreamTrack]), options);
|
8
27
|
|
9
28
|
let dataListener: (event: BlobEvent) => void;
|
@@ -49,3 +68,8 @@ export class LocalTrackRecorder<T extends LocalTrack> extends MediaRecorder {
|
|
49
68
|
this.addEventListener('error', onError);
|
50
69
|
}
|
51
70
|
}
|
71
|
+
|
72
|
+
// Helper function to check if recording is supported
|
73
|
+
export function isRecordingSupported(): boolean {
|
74
|
+
return isMediaRecorderAvailable;
|
75
|
+
}
|