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.
@@ -1 +1 @@
1
- {"version":3,"file":"LocalTrack.d.ts","sourceRoot":"","sources":["../../../../src/room/track/LocalTrack.ts"],"names":[],"mappings":"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"}
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
- export declare class LocalTrackRecorder<T extends LocalTrack> extends MediaRecorder {
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;AAE3C,qBAAa,kBAAkB,CAAC,CAAC,SAAS,UAAU,CAAE,SAAQ,aAAa;IACzE,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAE3B,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,oBAAoB;CA6CrD"}
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
- export declare class LocalTrackRecorder<T extends LocalTrack> extends MediaRecorder {
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.2",
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',
@@ -1,9 +1,28 @@
1
1
  import type LocalTrack from './LocalTrack';
2
2
 
3
- export class LocalTrackRecorder<T extends LocalTrack> extends MediaRecorder {
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
+ }