livekit-client 2.22.3 → 2.23.0
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/README.md +35 -0
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +71 -8
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +1746 -547
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +1 -1
- package/dist/livekit-client.fm.worker.js.map +1 -1
- package/dist/livekit-client.fm.worker.mjs +2 -1
- package/dist/livekit-client.fm.worker.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +4 -2
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/api/WebSocketStream.d.ts +1 -0
- package/dist/src/api/WebSocketStream.d.ts.map +1 -1
- package/dist/src/api/utils.d.ts +1 -1
- package/dist/src/api/utils.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
- package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/options.d.ts +14 -0
- package/dist/src/options.d.ts.map +1 -1
- package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +100 -7
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +16 -0
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +54 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
- package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
- package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
- package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
- package/dist/src/room/defaults.d.ts.map +1 -1
- package/dist/src/room/errors.d.ts +18 -0
- package/dist/src/room/errors.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +3 -2
- package/dist/src/room/events.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +1 -1
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
- package/dist/src/room/rpc/utils.d.ts.map +1 -1
- package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
- package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
- package/dist/src/room/track/LocalTrack.d.ts +18 -0
- package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
- package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
- package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
- package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
- package/dist/src/room/track/processor/types.d.ts +11 -0
- package/dist/src/room/track/processor/types.d.ts.map +1 -1
- package/dist/src/room/track/utils.d.ts +13 -0
- package/dist/src/room/track/utils.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +60 -1
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/compressionStreamStubs.d.ts +12 -0
- package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
- package/dist/ts4.2/api/SignalClient.d.ts +187 -185
- package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
- package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
- package/dist/ts4.2/api/utils.d.ts +9 -9
- package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
- package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
- package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
- package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
- package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
- package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
- package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
- package/dist/ts4.2/e2ee/constants.d.ts +21 -21
- package/dist/ts4.2/e2ee/errors.d.ts +12 -12
- package/dist/ts4.2/e2ee/events.d.ts +39 -39
- package/dist/ts4.2/e2ee/index.d.ts +6 -6
- package/dist/ts4.2/e2ee/types.d.ts +231 -231
- package/dist/ts4.2/e2ee/utils.d.ts +32 -32
- package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
- package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
- package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
- package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
- package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
- package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
- package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
- package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
- package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
- package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
- package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
- package/dist/ts4.2/index.d.ts +76 -76
- package/dist/ts4.2/logger.d.ts +66 -66
- package/dist/ts4.2/options.d.ts +163 -149
- package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
- package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
- package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
- package/dist/ts4.2/room/PCTransport.d.ts +268 -175
- package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
- package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
- package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
- package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
- package/dist/ts4.2/room/Room.d.ts +407 -365
- package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
- package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
- package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
- package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
- package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
- package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
- package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
- package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
- package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
- package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
- package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
- package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
- package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
- package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
- package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
- package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
- package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
- package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
- package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
- package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
- package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
- package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
- package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
- package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
- package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
- package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
- package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
- package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
- package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
- package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
- package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
- package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
- package/dist/ts4.2/room/data-track/types.d.ts +22 -22
- package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
- package/dist/ts4.2/room/debounce.d.ts +11 -11
- package/dist/ts4.2/room/defaults.d.ts +9 -9
- package/dist/ts4.2/room/errors.d.ts +180 -162
- package/dist/ts4.2/room/events.d.ts +638 -637
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
- package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
- package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
- package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
- package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
- package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/index.d.ts +7 -7
- package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
- package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
- package/dist/ts4.2/room/stats.d.ts +71 -71
- package/dist/ts4.2/room/statsSummary.d.ts +13 -13
- package/dist/ts4.2/room/timers.d.ts +12 -12
- package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
- package/dist/ts4.2/room/token-source/types.d.ts +70 -70
- package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
- package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
- package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
- package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
- package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
- package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
- package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
- package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
- package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
- package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
- package/dist/ts4.2/room/track/Track.d.ts +156 -166
- package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
- package/dist/ts4.2/room/track/create.d.ts +25 -25
- package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
- package/dist/ts4.2/room/track/options.d.ts +403 -403
- package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
- package/dist/ts4.2/room/track/record.d.ts +13 -13
- package/dist/ts4.2/room/track/types.d.ts +28 -28
- package/dist/ts4.2/room/track/utils.d.ts +60 -47
- package/dist/ts4.2/room/types.d.ts +127 -127
- package/dist/ts4.2/room/utils.d.ts +273 -214
- package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
- package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
- package/dist/ts4.2/test/mocks.d.ts +12 -12
- package/dist/ts4.2/test/promiseState.d.ts +12 -12
- package/dist/ts4.2/test/signalToken.d.ts +26 -26
- package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
- package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
- package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
- package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
- package/dist/ts4.2/utils/browserParser.d.ts +13 -13
- package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
- package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
- package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
- package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
- package/dist/ts4.2/utils/serializer.d.ts +48 -48
- package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
- package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
- package/dist/ts4.2/version.d.ts +15 -15
- package/package.json +5 -4
- package/src/api/SignalClient.e2e.test.ts +1 -3
- package/src/api/SignalClient.test.ts +394 -10
- package/src/api/SignalClient.ts +132 -76
- package/src/api/WebSocketStream.test.ts +11 -0
- package/src/api/WebSocketStream.ts +22 -1
- package/src/api/utils.ts +1 -1
- package/src/e2ee/E2eeManager.test.ts +43 -0
- package/src/e2ee/E2eeManager.ts +6 -2
- package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
- package/src/e2ee/worker/FrameCryptor.ts +21 -4
- package/src/e2ee/worker/naluUtils.test.ts +123 -0
- package/src/e2ee/worker/naluUtils.ts +57 -2
- package/src/index.ts +2 -0
- package/src/options.ts +16 -0
- package/src/room/DefaultReconnectPolicy.test.ts +58 -0
- package/src/room/DefaultReconnectPolicy.ts +14 -2
- package/src/room/PCTransport.test.ts +327 -9
- package/src/room/PCTransport.ts +339 -36
- package/src/room/PCTransportManager.ts +3 -1
- package/src/room/RTCEngine.test.ts +318 -2
- package/src/room/RTCEngine.ts +126 -12
- package/src/room/Room.test.ts +148 -6
- package/src/room/Room.ts +312 -80
- package/src/room/data-channel/DataChannelManager.test.ts +24 -7
- package/src/room/data-channel/DataChannelManager.ts +43 -38
- package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
- package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
- package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
- package/src/room/data-channel/LossyDataChannel.ts +10 -1
- package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
- package/src/room/data-channel/ReliableDataChannel.ts +16 -5
- package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
- package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
- package/src/room/defaults.ts +1 -0
- package/src/room/errors.test.ts +36 -0
- package/src/room/errors.ts +27 -0
- package/src/room/events.ts +2 -1
- package/src/room/participant/LocalParticipant.test.ts +136 -1
- package/src/room/participant/LocalParticipant.ts +66 -17
- package/src/room/participant/Participant.ts +6 -3
- package/src/room/participant/publishUtils.ts +0 -19
- package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
- package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
- package/src/room/rpc/client/RpcClientManager.ts +32 -15
- package/src/room/rpc/utils.test.ts +32 -0
- package/src/room/rpc/utils.ts +7 -0
- package/src/room/track/LocalAudioTrack.ts +101 -10
- package/src/room/track/LocalTrack.ts +87 -19
- package/src/room/track/LocalVideoTrack.ts +17 -3
- package/src/room/track/RemoteAudioTrack.ts +59 -14
- package/src/room/track/RemoteVideoTrack.test.ts +210 -0
- package/src/room/track/RemoteVideoTrack.ts +29 -3
- package/src/room/track/processor/types.ts +11 -0
- package/src/room/track/utils.test.ts +206 -2
- package/src/room/track/utils.ts +117 -5
- package/src/room/utils.test.ts +250 -0
- package/src/room/utils.ts +152 -19
- package/src/test/compressionStreamStubs.ts +53 -0
|
@@ -1,166 +1,156 @@
|
|
|
1
|
-
import { AudioTrackFeature, StreamState as ProtoStreamState, TrackSource, TrackType } from '@livekit/protocol';
|
|
2
|
-
import type TypedEventEmitter from 'typed-emitter';
|
|
3
|
-
import type { SignalClient } from '../../api/SignalClient';
|
|
4
|
-
import type { StructuredLogger } from '../../logger';
|
|
5
|
-
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
6
|
-
import type { LoggerOptions } from '../types';
|
|
7
|
-
import type { TrackProcessor } from './processor/types';
|
|
8
|
-
export declare enum VideoQuality {
|
|
9
|
-
LOW = 0,
|
|
10
|
-
MEDIUM = 1,
|
|
11
|
-
HIGH = 2
|
|
12
|
-
}
|
|
13
|
-
declare const Track_base: new () => TypedEventEmitter<TrackEventCallbacks>;
|
|
14
|
-
export declare abstract class Track<TrackKind extends Track.Kind = Track.Kind> extends Track_base {
|
|
15
|
-
readonly kind: TrackKind;
|
|
16
|
-
attachedElements: HTMLMediaElement[];
|
|
17
|
-
isMuted: boolean;
|
|
18
|
-
source: Track.Source;
|
|
19
|
-
private _streamState;
|
|
20
|
-
/**
|
|
21
|
-
* sid is set after track is published to server, or if it's a remote track
|
|
22
|
-
*/
|
|
23
|
-
sid?: Track.SID;
|
|
24
|
-
/**
|
|
25
|
-
* @internal
|
|
26
|
-
*/
|
|
27
|
-
mediaStream?: MediaStream;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
protected
|
|
39
|
-
protected
|
|
40
|
-
|
|
41
|
-
private
|
|
42
|
-
protected
|
|
43
|
-
protected
|
|
44
|
-
protected
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
*
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
audioTrackFeatureUpdate: (track: any, feature: AudioTrackFeature, enabled: boolean) => void;
|
|
158
|
-
timeSyncUpdate: (update: {
|
|
159
|
-
timestamp: number;
|
|
160
|
-
rtpTimestamp: number;
|
|
161
|
-
}) => void;
|
|
162
|
-
preConnectBufferFlushed: (buffer: NonSharedUint8Array[]) => void;
|
|
163
|
-
cpuConstrained: () => void;
|
|
164
|
-
};
|
|
165
|
-
export {};
|
|
166
|
-
//# sourceMappingURL=Track.d.ts.map
|
|
1
|
+
import { AudioTrackFeature, StreamState as ProtoStreamState, TrackSource, TrackType } from '@livekit/protocol';
|
|
2
|
+
import type TypedEventEmitter from 'typed-emitter';
|
|
3
|
+
import type { SignalClient } from '../../api/SignalClient';
|
|
4
|
+
import type { StructuredLogger } from '../../logger';
|
|
5
|
+
import type { NonSharedUint8Array } from '../../type-polyfills/non-shared-typed-arrays';
|
|
6
|
+
import type { LoggerOptions } from '../types';
|
|
7
|
+
import type { TrackProcessor } from './processor/types';
|
|
8
|
+
export declare enum VideoQuality {
|
|
9
|
+
LOW = 0,
|
|
10
|
+
MEDIUM = 1,
|
|
11
|
+
HIGH = 2
|
|
12
|
+
}
|
|
13
|
+
declare const Track_base: new () => TypedEventEmitter<TrackEventCallbacks>;
|
|
14
|
+
export declare abstract class Track<TrackKind extends Track.Kind = Track.Kind> extends Track_base {
|
|
15
|
+
readonly kind: TrackKind;
|
|
16
|
+
attachedElements: HTMLMediaElement[];
|
|
17
|
+
isMuted: boolean;
|
|
18
|
+
source: Track.Source;
|
|
19
|
+
private _streamState;
|
|
20
|
+
/**
|
|
21
|
+
* sid is set after track is published to server, or if it's a remote track
|
|
22
|
+
*/
|
|
23
|
+
sid?: Track.SID;
|
|
24
|
+
/**
|
|
25
|
+
* @internal
|
|
26
|
+
*/
|
|
27
|
+
mediaStream?: MediaStream;
|
|
28
|
+
get streamState(): Track.StreamState;
|
|
29
|
+
/** @internal */
|
|
30
|
+
setStreamState(value: Track.StreamState): void;
|
|
31
|
+
/** @internal */
|
|
32
|
+
rtpTimestamp: number | undefined;
|
|
33
|
+
protected _mediaStreamTrack: MediaStreamTrack;
|
|
34
|
+
protected _mediaStreamID: string;
|
|
35
|
+
protected isInBackground: boolean;
|
|
36
|
+
private backgroundTimeout;
|
|
37
|
+
private loggerContextCb;
|
|
38
|
+
protected timeSyncHandle: number | undefined;
|
|
39
|
+
protected _currentBitrate: number;
|
|
40
|
+
protected monitorInterval?: ReturnType<typeof setInterval>;
|
|
41
|
+
private finalStatsLogged;
|
|
42
|
+
protected log: StructuredLogger;
|
|
43
|
+
protected constructor(mediaTrack: MediaStreamTrack, kind: TrackKind, loggerOptions?: LoggerOptions);
|
|
44
|
+
protected get logContext(): {
|
|
45
|
+
[x: string]: unknown;
|
|
46
|
+
};
|
|
47
|
+
get currentBitrate(): number;
|
|
48
|
+
get mediaStreamTrack(): MediaStreamTrack;
|
|
49
|
+
abstract get isLocal(): boolean;
|
|
50
|
+
get mediaStreamID(): string;
|
|
51
|
+
/**
|
|
52
|
+
* creates a new HTMLAudioElement or HTMLVideoElement, attaches to it, and returns it
|
|
53
|
+
*/
|
|
54
|
+
attach(): HTMLMediaElement;
|
|
55
|
+
/**
|
|
56
|
+
* attaches track to an existing HTMLAudioElement or HTMLVideoElement
|
|
57
|
+
*/
|
|
58
|
+
attach(element: HTMLMediaElement): HTMLMediaElement;
|
|
59
|
+
/**
|
|
60
|
+
* Detaches from all attached elements
|
|
61
|
+
*/
|
|
62
|
+
detach(): HTMLMediaElement[];
|
|
63
|
+
/**
|
|
64
|
+
* Detach from a single element
|
|
65
|
+
* @param element
|
|
66
|
+
*/
|
|
67
|
+
detach(element: HTMLMediaElement): HTMLMediaElement;
|
|
68
|
+
stop(): void;
|
|
69
|
+
protected enable(): void;
|
|
70
|
+
protected disable(): void;
|
|
71
|
+
abstract startMonitor(signalClient?: SignalClient): void;
|
|
72
|
+
/**
|
|
73
|
+
* Raw stats of the sender or receiver this track is attached to.
|
|
74
|
+
*/
|
|
75
|
+
abstract getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
|
|
76
|
+
stopMonitor(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Dumps the raw stats of the track as it ends, once: a track that stops
|
|
79
|
+
* between two of the room's stats dumps is gone by the time the next one runs.
|
|
80
|
+
*/
|
|
81
|
+
private logFinalStats;
|
|
82
|
+
/** @internal */
|
|
83
|
+
updateLoggerOptions(loggerOptions: LoggerOptions): void;
|
|
84
|
+
private recycleElement;
|
|
85
|
+
protected appVisibilityChangedListener: () => void;
|
|
86
|
+
protected handleAppVisibilityChanged(): Promise<void>;
|
|
87
|
+
protected addAppVisibilityListener(): void;
|
|
88
|
+
protected removeAppVisibilityListener(): void;
|
|
89
|
+
}
|
|
90
|
+
export declare function attachToElement(track: MediaStreamTrack, element: HTMLMediaElement): void;
|
|
91
|
+
/** @internal */
|
|
92
|
+
export declare function detachTrack(track: MediaStreamTrack, element: HTMLMediaElement): void;
|
|
93
|
+
export declare namespace Track {
|
|
94
|
+
enum Kind {
|
|
95
|
+
Audio = "audio",
|
|
96
|
+
Video = "video",
|
|
97
|
+
Unknown = "unknown"
|
|
98
|
+
}
|
|
99
|
+
type SID = string;
|
|
100
|
+
enum Source {
|
|
101
|
+
Camera = "camera",
|
|
102
|
+
Microphone = "microphone",
|
|
103
|
+
ScreenShare = "screen_share",
|
|
104
|
+
ScreenShareAudio = "screen_share_audio",
|
|
105
|
+
Unknown = "unknown"
|
|
106
|
+
}
|
|
107
|
+
enum StreamState {
|
|
108
|
+
Active = "active",
|
|
109
|
+
Paused = "paused",
|
|
110
|
+
Unknown = "unknown"
|
|
111
|
+
}
|
|
112
|
+
interface Dimensions {
|
|
113
|
+
width: number;
|
|
114
|
+
height: number;
|
|
115
|
+
}
|
|
116
|
+
/** @internal */
|
|
117
|
+
function kindToProto(k: Kind): TrackType;
|
|
118
|
+
/** @internal */
|
|
119
|
+
function kindFromProto(t: TrackType): Kind | undefined;
|
|
120
|
+
/** @internal */
|
|
121
|
+
function sourceToProto(s: Source): TrackSource;
|
|
122
|
+
/** @internal */
|
|
123
|
+
function sourceFromProto(s: TrackSource): Source;
|
|
124
|
+
/** @internal */
|
|
125
|
+
function streamStateFromProto(s: ProtoStreamState): StreamState;
|
|
126
|
+
}
|
|
127
|
+
export type TrackEventCallbacks = {
|
|
128
|
+
message: () => void;
|
|
129
|
+
muted: (track?: any) => void;
|
|
130
|
+
unmuted: (track?: any) => void;
|
|
131
|
+
restarted: (track?: any) => void;
|
|
132
|
+
ended: (track?: any) => void;
|
|
133
|
+
updateSettings: () => void;
|
|
134
|
+
updateSubscription: () => void;
|
|
135
|
+
audioPlaybackStarted: () => void;
|
|
136
|
+
audioPlaybackFailed: (error?: Error) => void;
|
|
137
|
+
audioSilenceDetected: () => void;
|
|
138
|
+
visibilityChanged: (visible: boolean, track?: any) => void;
|
|
139
|
+
videoDimensionsChanged: (dimensions: Track.Dimensions, track?: any) => void;
|
|
140
|
+
videoPlaybackStarted: () => void;
|
|
141
|
+
videoPlaybackFailed: (error?: Error) => void;
|
|
142
|
+
elementAttached: (element: HTMLMediaElement) => void;
|
|
143
|
+
elementDetached: (element: HTMLMediaElement) => void;
|
|
144
|
+
upstreamPaused: (track: any) => void;
|
|
145
|
+
upstreamResumed: (track: any) => void;
|
|
146
|
+
trackProcessorUpdate: (processor?: TrackProcessor<Track.Kind, any>) => void;
|
|
147
|
+
audioTrackFeatureUpdate: (track: any, feature: AudioTrackFeature, enabled: boolean) => void;
|
|
148
|
+
timeSyncUpdate: (update: {
|
|
149
|
+
timestamp: number;
|
|
150
|
+
rtpTimestamp: number;
|
|
151
|
+
}) => void;
|
|
152
|
+
preConnectBufferFlushed: (buffer: NonSharedUint8Array[]) => void;
|
|
153
|
+
cpuConstrained: () => void;
|
|
154
|
+
};
|
|
155
|
+
export {};
|
|
156
|
+
//# sourceMappingURL=Track.d.ts.map
|
|
@@ -1,81 +1,75 @@
|
|
|
1
|
-
import { Encryption_Type } from '@livekit/protocol';
|
|
2
|
-
import type { SubscriptionError, TrackInfo, UpdateSubscription, UpdateTrackSettings } from '@livekit/protocol';
|
|
3
|
-
import type TypedEventEmitter from 'typed-emitter';
|
|
4
|
-
import type { LoggerOptions, TranscriptionSegment } from '../types';
|
|
5
|
-
import LocalAudioTrack from './LocalAudioTrack';
|
|
6
|
-
import LocalVideoTrack from './LocalVideoTrack';
|
|
7
|
-
import RemoteAudioTrack from './RemoteAudioTrack';
|
|
8
|
-
import type RemoteTrack from './RemoteTrack';
|
|
9
|
-
import RemoteVideoTrack from './RemoteVideoTrack';
|
|
10
|
-
import { Track } from './Track';
|
|
11
|
-
declare const TrackPublication_base: new () => TypedEventEmitter<PublicationEventCallbacks>;
|
|
12
|
-
export declare abstract class TrackPublication extends TrackPublication_base {
|
|
13
|
-
kind: Track.Kind;
|
|
14
|
-
trackName: string;
|
|
15
|
-
trackSid: Track.SID;
|
|
16
|
-
track?: Track;
|
|
17
|
-
source: Track.Source;
|
|
18
|
-
/** MimeType of the published track */
|
|
19
|
-
mimeType?: string;
|
|
20
|
-
/** dimension of the original published stream, video-only */
|
|
21
|
-
dimensions?: Track.Dimensions;
|
|
22
|
-
/** true if track was simulcasted to server, video-only */
|
|
23
|
-
simulcasted?: boolean;
|
|
24
|
-
/** @internal */
|
|
25
|
-
trackInfo?: TrackInfo;
|
|
26
|
-
protected metadataMuted: boolean;
|
|
27
|
-
protected encryption: Encryption_Type;
|
|
28
|
-
protected log: import("../../logger").StructuredLogger;
|
|
29
|
-
private loggerContextCb?;
|
|
30
|
-
constructor(kind: Track.Kind, id: string, name: string, loggerOptions?: LoggerOptions);
|
|
31
|
-
/** @internal */
|
|
32
|
-
setTrack(track?: Track): void;
|
|
33
|
-
protected get logContext(): {
|
|
34
|
-
[x: string]: unknown;
|
|
35
|
-
};
|
|
36
|
-
get isMuted(): boolean;
|
|
37
|
-
get isEnabled(): boolean;
|
|
38
|
-
get isSubscribed(): boolean;
|
|
39
|
-
get isEncrypted(): boolean;
|
|
40
|
-
abstract get isLocal(): boolean;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
transcriptionReceived: (transcription: TranscriptionSegment[]) => void;
|
|
77
|
-
timeSyncUpdate: (timestamp: number) => void;
|
|
78
|
-
cpuConstrained: (track: LocalVideoTrack) => void;
|
|
79
|
-
};
|
|
80
|
-
export {};
|
|
81
|
-
//# sourceMappingURL=TrackPublication.d.ts.map
|
|
1
|
+
import { Encryption_Type } from '@livekit/protocol';
|
|
2
|
+
import type { SubscriptionError, TrackInfo, UpdateSubscription, UpdateTrackSettings } from '@livekit/protocol';
|
|
3
|
+
import type TypedEventEmitter from 'typed-emitter';
|
|
4
|
+
import type { LoggerOptions, TranscriptionSegment } from '../types';
|
|
5
|
+
import LocalAudioTrack from './LocalAudioTrack';
|
|
6
|
+
import LocalVideoTrack from './LocalVideoTrack';
|
|
7
|
+
import RemoteAudioTrack from './RemoteAudioTrack';
|
|
8
|
+
import type RemoteTrack from './RemoteTrack';
|
|
9
|
+
import RemoteVideoTrack from './RemoteVideoTrack';
|
|
10
|
+
import { Track } from './Track';
|
|
11
|
+
declare const TrackPublication_base: new () => TypedEventEmitter<PublicationEventCallbacks>;
|
|
12
|
+
export declare abstract class TrackPublication extends TrackPublication_base {
|
|
13
|
+
kind: Track.Kind;
|
|
14
|
+
trackName: string;
|
|
15
|
+
trackSid: Track.SID;
|
|
16
|
+
track?: Track;
|
|
17
|
+
source: Track.Source;
|
|
18
|
+
/** MimeType of the published track */
|
|
19
|
+
mimeType?: string;
|
|
20
|
+
/** dimension of the original published stream, video-only */
|
|
21
|
+
dimensions?: Track.Dimensions;
|
|
22
|
+
/** true if track was simulcasted to server, video-only */
|
|
23
|
+
simulcasted?: boolean;
|
|
24
|
+
/** @internal */
|
|
25
|
+
trackInfo?: TrackInfo;
|
|
26
|
+
protected metadataMuted: boolean;
|
|
27
|
+
protected encryption: Encryption_Type;
|
|
28
|
+
protected log: import("../../logger").StructuredLogger;
|
|
29
|
+
private loggerContextCb?;
|
|
30
|
+
constructor(kind: Track.Kind, id: string, name: string, loggerOptions?: LoggerOptions);
|
|
31
|
+
/** @internal */
|
|
32
|
+
setTrack(track?: Track): void;
|
|
33
|
+
protected get logContext(): {
|
|
34
|
+
[x: string]: unknown;
|
|
35
|
+
};
|
|
36
|
+
get isMuted(): boolean;
|
|
37
|
+
get isEnabled(): boolean;
|
|
38
|
+
get isSubscribed(): boolean;
|
|
39
|
+
get isEncrypted(): boolean;
|
|
40
|
+
abstract get isLocal(): boolean;
|
|
41
|
+
get audioTrack(): (LocalAudioTrack | RemoteAudioTrack | undefined);
|
|
42
|
+
get videoTrack(): (LocalVideoTrack | RemoteVideoTrack | undefined);
|
|
43
|
+
handleMuted: () => void;
|
|
44
|
+
handleUnmuted: () => void;
|
|
45
|
+
/** @internal */
|
|
46
|
+
updateInfo(info: TrackInfo): void;
|
|
47
|
+
}
|
|
48
|
+
export declare namespace TrackPublication {
|
|
49
|
+
enum SubscriptionStatus {
|
|
50
|
+
Desired = "desired",
|
|
51
|
+
Subscribed = "subscribed",
|
|
52
|
+
Unsubscribed = "unsubscribed"
|
|
53
|
+
}
|
|
54
|
+
enum PermissionStatus {
|
|
55
|
+
Allowed = "allowed",
|
|
56
|
+
NotAllowed = "not_allowed"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export type PublicationEventCallbacks = {
|
|
60
|
+
muted: () => void;
|
|
61
|
+
unmuted: () => void;
|
|
62
|
+
ended: (track?: Track) => void;
|
|
63
|
+
updateSettings: (settings: UpdateTrackSettings) => void;
|
|
64
|
+
subscriptionPermissionChanged: (status: TrackPublication.PermissionStatus, prevStatus: TrackPublication.PermissionStatus) => void;
|
|
65
|
+
updateSubscription: (sub: UpdateSubscription) => void;
|
|
66
|
+
subscribed: (track: RemoteTrack) => void;
|
|
67
|
+
unsubscribed: (track: RemoteTrack) => void;
|
|
68
|
+
subscriptionStatusChanged: (status: TrackPublication.SubscriptionStatus, prevStatus: TrackPublication.SubscriptionStatus) => void;
|
|
69
|
+
subscriptionFailed: (error: SubscriptionError) => void;
|
|
70
|
+
transcriptionReceived: (transcription: TranscriptionSegment[]) => void;
|
|
71
|
+
timeSyncUpdate: (timestamp: number) => void;
|
|
72
|
+
cpuConstrained: (track: LocalVideoTrack) => void;
|
|
73
|
+
};
|
|
74
|
+
export {};
|
|
75
|
+
//# sourceMappingURL=TrackPublication.d.ts.map
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import type { LoggerOptions } from '../types';
|
|
2
|
-
import LocalAudioTrack from './LocalAudioTrack';
|
|
3
|
-
import type LocalTrack from './LocalTrack';
|
|
4
|
-
import LocalVideoTrack from './LocalVideoTrack';
|
|
5
|
-
import type { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureOptions, VideoCaptureOptions } from './options';
|
|
6
|
-
/**
|
|
7
|
-
* Creates a local video and audio track at the same time. When acquiring both
|
|
8
|
-
* audio and video tracks together, it'll display a single permission prompt to
|
|
9
|
-
* the user instead of two separate ones.
|
|
10
|
-
* @param options
|
|
11
|
-
*/
|
|
12
|
-
export declare function createLocalTracks(options?: CreateLocalTracksOptions, loggerOptions?: LoggerOptions): Promise<Array<LocalTrack>>;
|
|
13
|
-
/**
|
|
14
|
-
* Creates a [[LocalVideoTrack]] with getUserMedia()
|
|
15
|
-
* @param options
|
|
16
|
-
*/
|
|
17
|
-
export declare function createLocalVideoTrack(options?: VideoCaptureOptions): Promise<LocalVideoTrack>;
|
|
18
|
-
export declare function createLocalAudioTrack(options?: AudioCaptureOptions): Promise<LocalAudioTrack>;
|
|
19
|
-
/**
|
|
20
|
-
* Creates a screen capture tracks with getDisplayMedia().
|
|
21
|
-
* A LocalVideoTrack is always created and returned.
|
|
22
|
-
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
|
23
|
-
*/
|
|
24
|
-
export declare function createLocalScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
|
|
25
|
-
//# sourceMappingURL=create.d.ts.map
|
|
1
|
+
import type { LoggerOptions } from '../types';
|
|
2
|
+
import LocalAudioTrack from './LocalAudioTrack';
|
|
3
|
+
import type LocalTrack from './LocalTrack';
|
|
4
|
+
import LocalVideoTrack from './LocalVideoTrack';
|
|
5
|
+
import type { AudioCaptureOptions, CreateLocalTracksOptions, ScreenShareCaptureOptions, VideoCaptureOptions } from './options';
|
|
6
|
+
/**
|
|
7
|
+
* Creates a local video and audio track at the same time. When acquiring both
|
|
8
|
+
* audio and video tracks together, it'll display a single permission prompt to
|
|
9
|
+
* the user instead of two separate ones.
|
|
10
|
+
* @param options
|
|
11
|
+
*/
|
|
12
|
+
export declare function createLocalTracks(options?: CreateLocalTracksOptions, loggerOptions?: LoggerOptions): Promise<Array<LocalTrack>>;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a [[LocalVideoTrack]] with getUserMedia()
|
|
15
|
+
* @param options
|
|
16
|
+
*/
|
|
17
|
+
export declare function createLocalVideoTrack(options?: VideoCaptureOptions): Promise<LocalVideoTrack>;
|
|
18
|
+
export declare function createLocalAudioTrack(options?: AudioCaptureOptions): Promise<LocalAudioTrack>;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a screen capture tracks with getDisplayMedia().
|
|
21
|
+
* A LocalVideoTrack is always created and returned.
|
|
22
|
+
* If { audio: true }, and the browser supports audio capture, a LocalAudioTrack is also created.
|
|
23
|
+
*/
|
|
24
|
+
export declare function createLocalScreenTracks(options?: ScreenShareCaptureOptions): Promise<Array<LocalTrack>>;
|
|
25
|
+
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import LocalTrack from './LocalTrack';
|
|
2
|
-
import type { VideoCaptureOptions } from './options';
|
|
3
|
-
type FacingMode = NonNullable<VideoCaptureOptions['facingMode']>;
|
|
4
|
-
type FacingModeFromLocalTrackOptions = {
|
|
5
|
-
/**
|
|
6
|
-
* If no facing mode can be determined, this value will be used.
|
|
7
|
-
* @defaultValue 'user'
|
|
8
|
-
*/
|
|
9
|
-
defaultFacingMode?: FacingMode;
|
|
10
|
-
};
|
|
11
|
-
type FacingModeFromLocalTrackReturnValue = {
|
|
12
|
-
/**
|
|
13
|
-
* The (probable) facingMode of the track.
|
|
14
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode | MDN docs on facingMode}
|
|
15
|
-
*/
|
|
16
|
-
facingMode: FacingMode;
|
|
17
|
-
/**
|
|
18
|
-
* The confidence that the returned facingMode is correct.
|
|
19
|
-
*/
|
|
20
|
-
confidence: 'high' | 'medium' | 'low';
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Try to analyze the local track to determine the facing mode of a track.
|
|
24
|
-
*
|
|
25
|
-
* @remarks
|
|
26
|
-
* There is no property supported by all browsers to detect whether a video track originated from a user- or environment-facing camera device.
|
|
27
|
-
* For this reason, we use the `facingMode` property when available, but will fall back on a string-based analysis of the device label to determine the facing mode.
|
|
28
|
-
* If both methods fail, the default facing mode will be used.
|
|
29
|
-
*
|
|
30
|
-
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode | MDN docs on facingMode}
|
|
31
|
-
* @experimental
|
|
32
|
-
*/
|
|
33
|
-
export declare function facingModeFromLocalTrack(localTrack: LocalTrack | MediaStreamTrack, options?: FacingModeFromLocalTrackOptions): FacingModeFromLocalTrackReturnValue;
|
|
34
|
-
/**
|
|
35
|
-
* Attempt to analyze the device label to determine the facing mode.
|
|
36
|
-
*
|
|
37
|
-
* @experimental
|
|
38
|
-
*/
|
|
39
|
-
export declare function facingModeFromDeviceLabel(deviceLabel: string): FacingModeFromLocalTrackReturnValue | undefined;
|
|
40
|
-
export {};
|
|
41
|
-
//# sourceMappingURL=facingMode.d.ts.map
|
|
1
|
+
import LocalTrack from './LocalTrack';
|
|
2
|
+
import type { VideoCaptureOptions } from './options';
|
|
3
|
+
type FacingMode = NonNullable<VideoCaptureOptions['facingMode']>;
|
|
4
|
+
type FacingModeFromLocalTrackOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* If no facing mode can be determined, this value will be used.
|
|
7
|
+
* @defaultValue 'user'
|
|
8
|
+
*/
|
|
9
|
+
defaultFacingMode?: FacingMode;
|
|
10
|
+
};
|
|
11
|
+
type FacingModeFromLocalTrackReturnValue = {
|
|
12
|
+
/**
|
|
13
|
+
* The (probable) facingMode of the track.
|
|
14
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode | MDN docs on facingMode}
|
|
15
|
+
*/
|
|
16
|
+
facingMode: FacingMode;
|
|
17
|
+
/**
|
|
18
|
+
* The confidence that the returned facingMode is correct.
|
|
19
|
+
*/
|
|
20
|
+
confidence: 'high' | 'medium' | 'low';
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Try to analyze the local track to determine the facing mode of a track.
|
|
24
|
+
*
|
|
25
|
+
* @remarks
|
|
26
|
+
* There is no property supported by all browsers to detect whether a video track originated from a user- or environment-facing camera device.
|
|
27
|
+
* For this reason, we use the `facingMode` property when available, but will fall back on a string-based analysis of the device label to determine the facing mode.
|
|
28
|
+
* If both methods fail, the default facing mode will be used.
|
|
29
|
+
*
|
|
30
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaTrackConstraints/facingMode | MDN docs on facingMode}
|
|
31
|
+
* @experimental
|
|
32
|
+
*/
|
|
33
|
+
export declare function facingModeFromLocalTrack(localTrack: LocalTrack | MediaStreamTrack, options?: FacingModeFromLocalTrackOptions): FacingModeFromLocalTrackReturnValue;
|
|
34
|
+
/**
|
|
35
|
+
* Attempt to analyze the device label to determine the facing mode.
|
|
36
|
+
*
|
|
37
|
+
* @experimental
|
|
38
|
+
*/
|
|
39
|
+
export declare function facingModeFromDeviceLabel(deviceLabel: string): FacingModeFromLocalTrackReturnValue | undefined;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=facingMode.d.ts.map
|