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,365 +1,407 @@
|
|
|
1
|
-
import { DataPacket_Kind, DisconnectReason, Encryption_Type, MetricsBatch, ParticipantPermission, ServerInfo, SipDTMF, SubscriptionError, TranscriptionSegment as TranscriptionSegmentModel } from '@livekit/protocol';
|
|
2
|
-
import 'webrtc-adapter';
|
|
3
|
-
import type TypedEmitter from 'typed-emitter';
|
|
4
|
-
import type { InternalRoomOptions, RoomConnectOptions, RoomOptions } from '../options';
|
|
5
|
-
import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
|
|
6
|
-
import TypedPromise from '../utils/TypedPromise';
|
|
7
|
-
import RTCEngine, { DataChannelKind } from './RTCEngine';
|
|
8
|
-
import type { ByteStreamHandler, TextStreamHandler } from './data-stream/incoming/StreamReader';
|
|
9
|
-
import type LocalDataTrack from './data-track/LocalDataTrack';
|
|
10
|
-
import type RemoteDataTrack from './data-track/RemoteDataTrack';
|
|
11
|
-
import type { DataTrackSid } from './data-track/types';
|
|
12
|
-
import { UnexpectedConnectionState } from './errors';
|
|
13
|
-
import LocalParticipant from './participant/LocalParticipant';
|
|
14
|
-
import Participant from './participant/Participant';
|
|
15
|
-
import type { ConnectionQuality } from './participant/Participant';
|
|
16
|
-
import RemoteParticipant from './participant/RemoteParticipant';
|
|
17
|
-
import type { RpcInvocationData } from './rpc';
|
|
18
|
-
import LocalTrackPublication from './track/LocalTrackPublication';
|
|
19
|
-
import type RemoteTrack from './track/RemoteTrack';
|
|
20
|
-
import RemoteTrackPublication from './track/RemoteTrackPublication';
|
|
21
|
-
import { Track } from './track/Track';
|
|
22
|
-
import type { TrackPublication } from './track/TrackPublication';
|
|
23
|
-
import type { ChatMessage, SimulationOptions, SimulationScenario, TranscriptionSegment } from './types';
|
|
24
|
-
export declare enum ConnectionState {
|
|
25
|
-
Disconnected = "disconnected",
|
|
26
|
-
Connecting = "connecting",
|
|
27
|
-
Connected = "connected",
|
|
28
|
-
Reconnecting = "reconnecting",
|
|
29
|
-
SignalReconnecting = "signalReconnecting"
|
|
30
|
-
}
|
|
31
|
-
declare const Room_base: new () => TypedEmitter<RoomEventCallbacks>;
|
|
32
|
-
/**
|
|
33
|
-
* In LiveKit, a room is the logical grouping for a list of participants.
|
|
34
|
-
* Participants in a room can publish tracks, and subscribe to others' tracks.
|
|
35
|
-
*
|
|
36
|
-
* a Room fires [[RoomEvent | RoomEvents]].
|
|
37
|
-
*
|
|
38
|
-
* @noInheritDoc
|
|
39
|
-
*/
|
|
40
|
-
declare class Room extends Room_base {
|
|
41
|
-
state: ConnectionState;
|
|
42
|
-
/**
|
|
43
|
-
* map of identity: [[RemoteParticipant]]
|
|
44
|
-
*/
|
|
45
|
-
remoteParticipants: Map<string, RemoteParticipant>;
|
|
46
|
-
/**
|
|
47
|
-
* list of participants that are actively speaking. when this changes
|
|
48
|
-
* a [[RoomEvent.ActiveSpeakersChanged]] event is fired
|
|
49
|
-
*/
|
|
50
|
-
activeSpeakers: Participant[];
|
|
51
|
-
/** @internal */
|
|
52
|
-
engine: RTCEngine;
|
|
53
|
-
/** the current participant */
|
|
54
|
-
localParticipant: LocalParticipant;
|
|
55
|
-
/** options of room */
|
|
56
|
-
options: InternalRoomOptions;
|
|
57
|
-
/** reflects the sender encryption status of the local participant */
|
|
58
|
-
isE2EEEnabled: boolean;
|
|
59
|
-
serverInfo?: Partial<ServerInfo>;
|
|
60
|
-
private roomInfo?;
|
|
61
|
-
private sidToIdentity;
|
|
62
|
-
/** connect options of room */
|
|
63
|
-
private connOptions?;
|
|
64
|
-
private audioEnabled;
|
|
65
|
-
private audioContext?;
|
|
66
|
-
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
private
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
private
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
private
|
|
82
|
-
|
|
83
|
-
private
|
|
84
|
-
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
private
|
|
88
|
-
|
|
89
|
-
private
|
|
90
|
-
private
|
|
91
|
-
private
|
|
92
|
-
private
|
|
93
|
-
private
|
|
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
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
*
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
*
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
*
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
*
|
|
223
|
-
*
|
|
224
|
-
*
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
private
|
|
232
|
-
private
|
|
233
|
-
private
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
private
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
private
|
|
262
|
-
private
|
|
263
|
-
private
|
|
264
|
-
private
|
|
265
|
-
private
|
|
266
|
-
private
|
|
267
|
-
private
|
|
268
|
-
private
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
private
|
|
274
|
-
private
|
|
275
|
-
|
|
276
|
-
private
|
|
277
|
-
private
|
|
278
|
-
private
|
|
279
|
-
private
|
|
280
|
-
private
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
private
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
private
|
|
290
|
-
private
|
|
291
|
-
private
|
|
292
|
-
private
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
private
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
private
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
*
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
1
|
+
import { DataPacket_Kind, DisconnectReason, Encryption_Type, MetricsBatch, ParticipantPermission, ServerInfo, SipDTMF, SubscriptionError, TranscriptionSegment as TranscriptionSegmentModel } from '@livekit/protocol';
|
|
2
|
+
import 'webrtc-adapter';
|
|
3
|
+
import type TypedEmitter from 'typed-emitter';
|
|
4
|
+
import type { InternalRoomOptions, RoomConnectOptions, RoomOptions } from '../options';
|
|
5
|
+
import type { NonSharedUint8Array } from '../type-polyfills/non-shared-typed-arrays';
|
|
6
|
+
import TypedPromise from '../utils/TypedPromise';
|
|
7
|
+
import RTCEngine, { DataChannelKind } from './RTCEngine';
|
|
8
|
+
import type { ByteStreamHandler, TextStreamHandler } from './data-stream/incoming/StreamReader';
|
|
9
|
+
import type LocalDataTrack from './data-track/LocalDataTrack';
|
|
10
|
+
import type RemoteDataTrack from './data-track/RemoteDataTrack';
|
|
11
|
+
import type { DataTrackSid } from './data-track/types';
|
|
12
|
+
import { UnexpectedConnectionState } from './errors';
|
|
13
|
+
import LocalParticipant from './participant/LocalParticipant';
|
|
14
|
+
import Participant from './participant/Participant';
|
|
15
|
+
import type { ConnectionQuality } from './participant/Participant';
|
|
16
|
+
import RemoteParticipant from './participant/RemoteParticipant';
|
|
17
|
+
import type { RpcInvocationData } from './rpc';
|
|
18
|
+
import LocalTrackPublication from './track/LocalTrackPublication';
|
|
19
|
+
import type RemoteTrack from './track/RemoteTrack';
|
|
20
|
+
import RemoteTrackPublication from './track/RemoteTrackPublication';
|
|
21
|
+
import { Track } from './track/Track';
|
|
22
|
+
import type { TrackPublication } from './track/TrackPublication';
|
|
23
|
+
import type { ChatMessage, SimulationOptions, SimulationScenario, TranscriptionSegment } from './types';
|
|
24
|
+
export declare enum ConnectionState {
|
|
25
|
+
Disconnected = "disconnected",
|
|
26
|
+
Connecting = "connecting",
|
|
27
|
+
Connected = "connected",
|
|
28
|
+
Reconnecting = "reconnecting",
|
|
29
|
+
SignalReconnecting = "signalReconnecting"
|
|
30
|
+
}
|
|
31
|
+
declare const Room_base: new () => TypedEmitter<RoomEventCallbacks>;
|
|
32
|
+
/**
|
|
33
|
+
* In LiveKit, a room is the logical grouping for a list of participants.
|
|
34
|
+
* Participants in a room can publish tracks, and subscribe to others' tracks.
|
|
35
|
+
*
|
|
36
|
+
* a Room fires [[RoomEvent | RoomEvents]].
|
|
37
|
+
*
|
|
38
|
+
* @noInheritDoc
|
|
39
|
+
*/
|
|
40
|
+
declare class Room extends Room_base {
|
|
41
|
+
state: ConnectionState;
|
|
42
|
+
/**
|
|
43
|
+
* map of identity: [[RemoteParticipant]]
|
|
44
|
+
*/
|
|
45
|
+
remoteParticipants: Map<string, RemoteParticipant>;
|
|
46
|
+
/**
|
|
47
|
+
* list of participants that are actively speaking. when this changes
|
|
48
|
+
* a [[RoomEvent.ActiveSpeakersChanged]] event is fired
|
|
49
|
+
*/
|
|
50
|
+
activeSpeakers: Participant[];
|
|
51
|
+
/** @internal */
|
|
52
|
+
engine: RTCEngine;
|
|
53
|
+
/** the current participant */
|
|
54
|
+
localParticipant: LocalParticipant;
|
|
55
|
+
/** options of room */
|
|
56
|
+
options: InternalRoomOptions;
|
|
57
|
+
/** reflects the sender encryption status of the local participant */
|
|
58
|
+
isE2EEEnabled: boolean;
|
|
59
|
+
serverInfo?: Partial<ServerInfo>;
|
|
60
|
+
private roomInfo?;
|
|
61
|
+
private sidToIdentity;
|
|
62
|
+
/** connect options of room */
|
|
63
|
+
private connOptions?;
|
|
64
|
+
private audioEnabled;
|
|
65
|
+
private audioContext?;
|
|
66
|
+
/**
|
|
67
|
+
* whether `audioContext` was created by the SDK and therefore has to be closed by it.
|
|
68
|
+
* A context handed in through `webAudioMix` is owned by the application instead.
|
|
69
|
+
*/
|
|
70
|
+
private ownsAudioContext;
|
|
71
|
+
/**
|
|
72
|
+
* set once the audio context has been released as part of a disconnect. Guards against
|
|
73
|
+
* creating a new context outside of a connection lifecycle, where nothing would close it again.
|
|
74
|
+
*/
|
|
75
|
+
private audioContextReleased;
|
|
76
|
+
/**
|
|
77
|
+
* serialises `acquireAudioContext` against `releaseAudioContext`. Both await per-track graph
|
|
78
|
+
* rebuilds, so without it a reconnect landing inside a disconnect's teardown leaves the two
|
|
79
|
+
* racing to set the participants' context, and the loser's value is the one that sticks.
|
|
80
|
+
*/
|
|
81
|
+
private audioContextMutex;
|
|
82
|
+
/** tears down the iOS dummy audio element, set while one is in place. See `startAudio` */
|
|
83
|
+
private releaseDummyAudioElement?;
|
|
84
|
+
/** silent audio tracks this room acquired, handed back to the shared source on disconnect */
|
|
85
|
+
private acquiredEmptyAudioTracks;
|
|
86
|
+
/** used for aborting pending connections to a LiveKit server */
|
|
87
|
+
private abortController?;
|
|
88
|
+
/** future holding client initiated connection attempt */
|
|
89
|
+
private connectFuture?;
|
|
90
|
+
private disconnectLock;
|
|
91
|
+
private e2eeManager;
|
|
92
|
+
private frameMetadataManager;
|
|
93
|
+
private e2eeStateMutex;
|
|
94
|
+
private connectionReconcileInterval?;
|
|
95
|
+
private statsLogInterval?;
|
|
96
|
+
private regionUrlProvider?;
|
|
97
|
+
private regionUrl?;
|
|
98
|
+
private isVideoPlaybackBlocked;
|
|
99
|
+
private log;
|
|
100
|
+
private statsLog;
|
|
101
|
+
private bufferedEvents;
|
|
102
|
+
private isResuming;
|
|
103
|
+
private pendingTrackAddedCallbacks;
|
|
104
|
+
/**
|
|
105
|
+
* map to store first point in time when a particular transcription segment was received
|
|
106
|
+
*/
|
|
107
|
+
private transcriptionReceivedTimes;
|
|
108
|
+
private incomingDataStreamManager;
|
|
109
|
+
private outgoingDataStreamManager;
|
|
110
|
+
private incomingDataTrackManager;
|
|
111
|
+
private outgoingDataTrackManager;
|
|
112
|
+
private rpcClientManager;
|
|
113
|
+
private rpcServerManager;
|
|
114
|
+
get hasE2EESetup(): boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Creates a new Room, the primary construct for a LiveKit session.
|
|
117
|
+
* @param options
|
|
118
|
+
*/
|
|
119
|
+
constructor(options?: RoomOptions);
|
|
120
|
+
registerTextStreamHandler(topic: string, callback: TextStreamHandler): void;
|
|
121
|
+
unregisterTextStreamHandler(topic: string): void;
|
|
122
|
+
registerByteStreamHandler(topic: string, callback: ByteStreamHandler): void;
|
|
123
|
+
unregisterByteStreamHandler(topic: string): void;
|
|
124
|
+
/**
|
|
125
|
+
* Establishes the participant as a receiver for calls of the specified RPC method.
|
|
126
|
+
*
|
|
127
|
+
* @param method - The name of the indicated RPC method
|
|
128
|
+
* @param handler - Will be invoked when an RPC request for this method is received
|
|
129
|
+
* @returns A promise that resolves when the method is successfully registered
|
|
130
|
+
* @throws {Error} If a handler for this method is already registered (must call unregisterRpcMethod first)
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* ```typescript
|
|
134
|
+
* room.localParticipant?.registerRpcMethod(
|
|
135
|
+
* 'greet',
|
|
136
|
+
* async (data: RpcInvocationData) => {
|
|
137
|
+
* console.log(`Received greeting from ${data.callerIdentity}: ${data.payload}`);
|
|
138
|
+
* return `Hello, ${data.callerIdentity}!`;
|
|
139
|
+
* }
|
|
140
|
+
* );
|
|
141
|
+
* ```
|
|
142
|
+
*
|
|
143
|
+
* The handler should return a Promise that resolves to a string.
|
|
144
|
+
* If unable to respond within `responseTimeout`, the request will result in an error on the caller's side.
|
|
145
|
+
*
|
|
146
|
+
* You may throw errors of type `RpcError` with a string `message` in the handler,
|
|
147
|
+
* and they will be received on the caller's side with the message intact.
|
|
148
|
+
* Other errors thrown in your handler will not be transmitted as-is, and will instead arrive to the caller as `1500` ("Application Error").
|
|
149
|
+
*/
|
|
150
|
+
registerRpcMethod(method: string, handler: (data: RpcInvocationData) => Promise<string>): void;
|
|
151
|
+
/**
|
|
152
|
+
* Unregisters a previously registered RPC method.
|
|
153
|
+
*
|
|
154
|
+
* @param method - The name of the RPC method to unregister
|
|
155
|
+
*/
|
|
156
|
+
unregisterRpcMethod(method: string): void;
|
|
157
|
+
/**
|
|
158
|
+
* @experimental
|
|
159
|
+
*/
|
|
160
|
+
setE2EEEnabled(enabled: boolean): Promise<void>;
|
|
161
|
+
private setupE2EE;
|
|
162
|
+
private setupFrameMetadata;
|
|
163
|
+
private get logContext();
|
|
164
|
+
get isRecording(): boolean;
|
|
165
|
+
/**
|
|
166
|
+
* server assigned unique room id.
|
|
167
|
+
* returns once a sid has been issued by the server.
|
|
168
|
+
*/
|
|
169
|
+
getSid(): TypedPromise<string, UnexpectedConnectionState>;
|
|
170
|
+
get name(): string;
|
|
171
|
+
get metadata(): (string | undefined);
|
|
172
|
+
get numParticipants(): number;
|
|
173
|
+
get numPublishers(): number;
|
|
174
|
+
private maybeCreateEngine;
|
|
175
|
+
private createRegionStrategy;
|
|
176
|
+
/**
|
|
177
|
+
* getLocalDevices abstracts navigator.mediaDevices.enumerateDevices.
|
|
178
|
+
* In particular, it requests device permissions by default if needed
|
|
179
|
+
* and makes sure the returned device does not consist of dummy devices
|
|
180
|
+
* @param kind
|
|
181
|
+
* @returns a list of available local devices
|
|
182
|
+
*/
|
|
183
|
+
static getLocalDevices(kind?: MediaDeviceKind, requestPermissions?: boolean): Promise<MediaDeviceInfo[]>;
|
|
184
|
+
static cleanupRegistry: false | FinalizationRegistry<() => void>;
|
|
185
|
+
/**
|
|
186
|
+
* prepareConnection should be called as soon as the page is loaded, in order
|
|
187
|
+
* to speed up the connection attempt. This function will
|
|
188
|
+
* - perform DNS resolution and pre-warm the DNS cache
|
|
189
|
+
* - establish TLS connection and cache TLS keys
|
|
190
|
+
*
|
|
191
|
+
* With LiveKit Cloud, it will also determine the best edge data center for
|
|
192
|
+
* the current client to connect to if a token is provided.
|
|
193
|
+
*/
|
|
194
|
+
prepareConnection(url: string, token?: string): Promise<void>;
|
|
195
|
+
connect: (url: string, token: string, opts?: RoomConnectOptions) => Promise<void>;
|
|
196
|
+
private connectSignal;
|
|
197
|
+
private applyJoinResponse;
|
|
198
|
+
private attemptConnection;
|
|
199
|
+
/**
|
|
200
|
+
* disconnects the room, emits [[RoomEvent.Disconnected]]
|
|
201
|
+
*/
|
|
202
|
+
disconnect: (stopTracks?: boolean) => Promise<void>;
|
|
203
|
+
/**
|
|
204
|
+
* retrieves a participant by identity
|
|
205
|
+
* @param identity
|
|
206
|
+
* @returns
|
|
207
|
+
*/
|
|
208
|
+
getParticipantByIdentity(identity: string): Participant | undefined;
|
|
209
|
+
private clearConnectionFutures;
|
|
210
|
+
/**
|
|
211
|
+
* @internal for testing
|
|
212
|
+
*/
|
|
213
|
+
simulateScenario(scenario: SimulationScenario, arg?: any): Promise<void>;
|
|
214
|
+
private onPageLeave;
|
|
215
|
+
/**
|
|
216
|
+
* iOS blocks audio element playback if
|
|
217
|
+
* - user is not publishing audio themselves and
|
|
218
|
+
* - no other audio source is playing
|
|
219
|
+
*
|
|
220
|
+
* as a workaround, we create an audio element with an empty track, so that
|
|
221
|
+
* silent audio is always playing
|
|
222
|
+
*
|
|
223
|
+
* The element is shared with any other room on the page and handed back on disconnect, so it
|
|
224
|
+
* outlives whichever room happened to create it.
|
|
225
|
+
*/
|
|
226
|
+
private acquireDummyAudioElement;
|
|
227
|
+
/**
|
|
228
|
+
* Obtains a silent audio track from the shared source and keeps track of it, so that it can be
|
|
229
|
+
* handed back on disconnect and the shared `AudioContext` behind it can be closed again.
|
|
230
|
+
*/
|
|
231
|
+
private acquireEmptyAudioStreamTrack;
|
|
232
|
+
private releaseAcquiredEmptyAudioTrack;
|
|
233
|
+
private releaseAcquiredEmptyAudioTracks;
|
|
234
|
+
/**
|
|
235
|
+
* Browsers have different policies regarding audio playback. Most requiring
|
|
236
|
+
* some form of user interaction (click/tap/etc).
|
|
237
|
+
* In those cases, audio will be silent until a click/tap triggering one of the following
|
|
238
|
+
* - `startAudio`
|
|
239
|
+
* - `getUserMedia`
|
|
240
|
+
*/
|
|
241
|
+
startAudio: () => Promise<void>;
|
|
242
|
+
startVideo: () => Promise<void>;
|
|
243
|
+
get canPlaybackAudio(): boolean;
|
|
244
|
+
get canPlaybackVideo(): boolean;
|
|
245
|
+
getActiveDevice(kind: MediaDeviceKind): string | undefined;
|
|
246
|
+
/**
|
|
247
|
+
* Switches all active devices used in this room to the given device.
|
|
248
|
+
*
|
|
249
|
+
* Note: setting AudioOutput is not supported on some browsers. See [setSinkId](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/setSinkId#browser_compatibility)
|
|
250
|
+
*
|
|
251
|
+
* @param kind use `videoinput` for camera track,
|
|
252
|
+
* `audioinput` for microphone track,
|
|
253
|
+
* `audiooutput` to set speaker for all incoming audio tracks
|
|
254
|
+
* @param deviceId
|
|
255
|
+
*/
|
|
256
|
+
switchActiveDevice(kind: MediaDeviceKind, deviceId: string, exact?: boolean): Promise<boolean>;
|
|
257
|
+
private setupLocalParticipantEvents;
|
|
258
|
+
private recreateEngine;
|
|
259
|
+
private onTrackAdded;
|
|
260
|
+
private cancelPendingTrackAdded;
|
|
261
|
+
private handleLocalTrackSubscribed;
|
|
262
|
+
private emitLocalTrackSubscribed;
|
|
263
|
+
private handleRestarting;
|
|
264
|
+
private handleRestarted;
|
|
265
|
+
private handleSignalRestarted;
|
|
266
|
+
private handleDisconnect;
|
|
267
|
+
private handleParticipantUpdates;
|
|
268
|
+
private handleParticipantDisconnected;
|
|
269
|
+
private handleActiveSpeakersUpdate;
|
|
270
|
+
private handleSpeakersChanged;
|
|
271
|
+
private handleStreamStateUpdate;
|
|
272
|
+
private handleSubscriptionPermissionUpdate;
|
|
273
|
+
private handleSubscriptionError;
|
|
274
|
+
private handleDataPacket;
|
|
275
|
+
private handleUserPacket;
|
|
276
|
+
private handleSipDtmf;
|
|
277
|
+
private handleTranscription;
|
|
278
|
+
private handleChatMessage;
|
|
279
|
+
private handleMetrics;
|
|
280
|
+
private handleDataStream;
|
|
281
|
+
bufferedSegments: Map<string, TranscriptionSegmentModel>;
|
|
282
|
+
private handleAudioPlaybackStarted;
|
|
283
|
+
private handleAudioPlaybackFailed;
|
|
284
|
+
private handleVideoPlaybackStarted;
|
|
285
|
+
private handleVideoPlaybackFailed;
|
|
286
|
+
/**
|
|
287
|
+
* attempt to select the default devices if the previously selected devices are no longer available after a device change event
|
|
288
|
+
*/
|
|
289
|
+
private selectDefaultDevices;
|
|
290
|
+
private handleDeviceChange;
|
|
291
|
+
private handleRoomUpdate;
|
|
292
|
+
private handleConnectionQualityUpdate;
|
|
293
|
+
/**
|
|
294
|
+
* @param forConnect whether this acquisition belongs to a connect, which is the only caller
|
|
295
|
+
* allowed to put a released room back on an audio context.
|
|
296
|
+
*/
|
|
297
|
+
private acquireAudioContext;
|
|
298
|
+
/**
|
|
299
|
+
* Points the room and its participants at `audioContext`, rebuilding the web audio graph of
|
|
300
|
+
* every audio track in it. Closes the previous context if the SDK `owned` it.
|
|
301
|
+
*/
|
|
302
|
+
private setRoomAudioContext;
|
|
303
|
+
/**
|
|
304
|
+
* Detaches the web audio graph the SDK built from the current audio context and closes that
|
|
305
|
+
* context if the SDK created it. A context provided through `webAudioMix` is left untouched.
|
|
306
|
+
*/
|
|
307
|
+
private releaseAudioContext;
|
|
308
|
+
private createParticipant;
|
|
309
|
+
private getOrCreateParticipant;
|
|
310
|
+
private sendSyncState;
|
|
311
|
+
/**
|
|
312
|
+
* After resuming, we'll need to notify the server of the current
|
|
313
|
+
* subscription settings.
|
|
314
|
+
*/
|
|
315
|
+
private updateSubscriptions;
|
|
316
|
+
private getRemoteParticipantBySid;
|
|
317
|
+
/** The client capabilities this SDK advertises to other participants in its `ClientInfo`. */
|
|
318
|
+
private getClientInfoCapabilities;
|
|
319
|
+
private getRemoteParticipantClientProtocol;
|
|
320
|
+
private getRemoteParticipantCapabilities;
|
|
321
|
+
private getAllRemoteParticipantIdentities;
|
|
322
|
+
private registerRpcDataStreamHandler;
|
|
323
|
+
private setStatsLogging;
|
|
324
|
+
/**
|
|
325
|
+
* Dumps stats of both peer connections.
|
|
326
|
+
*/
|
|
327
|
+
private logWebRTCStats;
|
|
328
|
+
private registerConnectionReconcile;
|
|
329
|
+
private clearConnectionReconcile;
|
|
330
|
+
private setAndEmitConnectionState;
|
|
331
|
+
private emitBufferedEvents;
|
|
332
|
+
private emitWhenConnected;
|
|
333
|
+
private onLocalParticipantMetadataChanged;
|
|
334
|
+
private onLocalParticipantNameChanged;
|
|
335
|
+
private onLocalAttributesChanged;
|
|
336
|
+
private onLocalTrackMuted;
|
|
337
|
+
private onLocalTrackUnmuted;
|
|
338
|
+
private onTrackProcessorUpdate;
|
|
339
|
+
private onLocalTrackPublished;
|
|
340
|
+
private onLocalTrackUnpublished;
|
|
341
|
+
private onLocalTrackRestarted;
|
|
342
|
+
private onLocalConnectionQualityChanged;
|
|
343
|
+
private onMediaDevicesError;
|
|
344
|
+
private onLocalParticipantPermissionsChanged;
|
|
345
|
+
private onLocalChatMessageSent;
|
|
346
|
+
/**
|
|
347
|
+
* Allows to populate a room with simulated participants.
|
|
348
|
+
* No actual connection to a server will be established, all state is
|
|
349
|
+
* @experimental
|
|
350
|
+
*/
|
|
351
|
+
simulateParticipants(options: SimulationOptions): Promise<void>;
|
|
352
|
+
emit<E extends keyof RoomEventCallbacks>(event: E, ...args: Parameters<RoomEventCallbacks[E]>): boolean;
|
|
353
|
+
}
|
|
354
|
+
export default Room;
|
|
355
|
+
export type RoomEventCallbacks = {
|
|
356
|
+
connected: () => void;
|
|
357
|
+
reconnecting: () => void;
|
|
358
|
+
signalReconnecting: () => void;
|
|
359
|
+
reconnected: () => void;
|
|
360
|
+
disconnected: (reason?: DisconnectReason) => void;
|
|
361
|
+
connectionStateChanged: (state: ConnectionState) => void;
|
|
362
|
+
moved: (name: string) => void;
|
|
363
|
+
mediaDevicesChanged: () => void;
|
|
364
|
+
participantConnected: (participant: RemoteParticipant) => void;
|
|
365
|
+
participantDisconnected: (participant: RemoteParticipant, disconnectReason?: DisconnectReason) => void;
|
|
366
|
+
trackPublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
|
|
367
|
+
trackSubscribed: (track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
|
|
368
|
+
trackSubscriptionFailed: (trackSid: string, participant: RemoteParticipant, reason?: SubscriptionError) => void;
|
|
369
|
+
trackUnpublished: (publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
|
|
370
|
+
trackUnsubscribed: (track: RemoteTrack, publication: RemoteTrackPublication, participant: RemoteParticipant) => void;
|
|
371
|
+
trackMuted: (publication: TrackPublication, participant: Participant) => void;
|
|
372
|
+
trackUnmuted: (publication: TrackPublication, participant: Participant) => void;
|
|
373
|
+
localTrackPublished: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
|
|
374
|
+
localTrackUnpublished: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
|
|
375
|
+
localAudioSilenceDetected: (publication: LocalTrackPublication) => void;
|
|
376
|
+
participantMetadataChanged: (metadata: string | undefined, participant: RemoteParticipant | LocalParticipant) => void;
|
|
377
|
+
participantNameChanged: (name: string, participant: RemoteParticipant | LocalParticipant) => void;
|
|
378
|
+
participantPermissionsChanged: (prevPermissions: ParticipantPermission | undefined, participant: RemoteParticipant | LocalParticipant) => void;
|
|
379
|
+
participantAttributesChanged: (changedAttributes: Record<string, string>, participant: RemoteParticipant | LocalParticipant) => void;
|
|
380
|
+
activeSpeakersChanged: (speakers: Array<Participant>) => void;
|
|
381
|
+
roomMetadataChanged: (metadata: string) => void;
|
|
382
|
+
dataReceived: (payload: NonSharedUint8Array, participant?: RemoteParticipant, kind?: DataPacket_Kind, topic?: string, encryptionType?: Encryption_Type, participantIdentity?: string) => void;
|
|
383
|
+
sipDTMFReceived: (dtmf: SipDTMF, participant?: RemoteParticipant) => void;
|
|
384
|
+
transcriptionReceived: (transcription: TranscriptionSegment[], participant?: Participant, publication?: TrackPublication) => void;
|
|
385
|
+
connectionQualityChanged: (quality: ConnectionQuality, participant: Participant) => void;
|
|
386
|
+
mediaDevicesError: (error: Error, kind?: MediaDeviceKind) => void;
|
|
387
|
+
trackStreamStateChanged: (publication: RemoteTrackPublication, streamState: Track.StreamState, participant: RemoteParticipant) => void;
|
|
388
|
+
trackSubscriptionPermissionChanged: (publication: RemoteTrackPublication, status: TrackPublication.PermissionStatus, participant: RemoteParticipant) => void;
|
|
389
|
+
trackSubscriptionStatusChanged: (publication: RemoteTrackPublication, status: TrackPublication.SubscriptionStatus, participant: RemoteParticipant) => void;
|
|
390
|
+
audioPlaybackChanged: (playing: boolean) => void;
|
|
391
|
+
videoPlaybackChanged: (playing: boolean) => void;
|
|
392
|
+
signalConnected: () => void;
|
|
393
|
+
recordingStatusChanged: (recording: boolean) => void;
|
|
394
|
+
participantEncryptionStatusChanged: (encrypted: boolean, participant?: Participant) => void;
|
|
395
|
+
encryptionError: (error: Error, participant?: Participant) => void;
|
|
396
|
+
dcBufferStatusChanged: (isLow: boolean, kind: DataChannelKind) => void;
|
|
397
|
+
activeDeviceChanged: (kind: MediaDeviceKind, deviceId: string) => void;
|
|
398
|
+
chatMessage: (message: ChatMessage, participant?: RemoteParticipant | LocalParticipant) => void;
|
|
399
|
+
localTrackSubscribed: (publication: LocalTrackPublication, participant: LocalParticipant) => void;
|
|
400
|
+
metricsReceived: (metrics: MetricsBatch, participant?: Participant) => void;
|
|
401
|
+
participantActive: (participant: Participant) => void;
|
|
402
|
+
dataTrackPublished: (track: RemoteDataTrack) => void;
|
|
403
|
+
dataTrackUnpublished: (sid: DataTrackSid) => void;
|
|
404
|
+
localDataTrackPublished: (track: LocalDataTrack) => void;
|
|
405
|
+
localDataTrackUnpublished: (sid: DataTrackSid) => void;
|
|
406
|
+
};
|
|
407
|
+
//# sourceMappingURL=Room.d.ts.map
|