livekit_client library

Classes

ActiveSpeakersChangedEvent
Active speakers changed. List of speakers are ordered by their audio level. loudest speakers first. This will include the LocalParticipant too.
Agent
Represents a LiveKit Agent.
AgentAttributes
AgentTranscript
A transcript emitted by the agent.
AudioCaptureOptions
Options used when creating a LocalAudioTrack.
AudioEncoding
A type that represents audio encoding information.
AudioOutputOptions
AudioPlaybackStatusChanged
AudioProcessorOptions
AudioPublishOptions
Options used when publishing audio.
AudioReceiverStatsEvent
AudioSenderStatsEvent
AudioVisualizer
AudioVisualizerEvent
AudioVisualizerOptions
BackupVideoCodec
BaseKeyProvider
BaseStreamInfo
BaseStreamReader<T extends BaseStreamInfo, U>
BaseStreamWriter<T, InfoType extends BaseStreamInfo>
BrowserVersion
ByteStreamInfo
ByteStreamReader
ByteStreamWriter
CachingTokenSource
A token source that caches credentials from any TokenSourceConfigurable using a configurable store.
CameraCaptureOptions
Options used when creating a LocalVideoTrack that captures the camera.
ChatMessage
ConnectOptions
Options used when connecting to the server.
CustomTokenSource
A custom token source that executes provided logic to fetch credentials.
DataReceivedEvent
Data received from RemoteParticipant. Data packets provides the ability to use LiveKit to send/receive arbitrary payloads. Emitted by Room and RemoteParticipant.
DataStreamController<T extends DataStream_Chunk>
E2EEManager
E2EEOptions
EndpointTokenSource
A token source that fetches credentials via HTTP requests from a custom backend.
EventsEmitter<T>
EventsListenable<T>
EventsListener<T>
FastConnectOptions
This will enable the local participant to publish tracks on connect, instead of having to explicitly publish them. Defaults to false for all three tracks: microphone, camera, and screen. You can also create LocalAudio/VideoTrack on your PreJoin page (preview camera or select audio device), Automatically publish these tracks after the room is connected.
Hardware
InMemoryTokenStore
A simple in-memory store implementation for token caching.
KeyInfo
KeyProvider
LiteralTokenSource
A token source that provides a fixed set of credentials without dynamic fetching.
LiveKitClient
Main entry point to connect to a room.
LiveKitJwtPayload
Parsed payload for a LiveKit-issued JWT.
LiveKitVideoGrant
LiveKit-specific video grants embedded within a JWT.
LocalAudioTrack
LocalParticipant
Represents the current participant in the room. Instance of LocalParticipant is automatically created after successfully connecting to a Room and will be accessible from Room.localParticipant.
LocalTrack
Base class for LocalAudioTrack and LocalVideoTrack.
LocalTrackOptions
Base class for track options.
LocalTrackPublication<T extends LocalTrack>
A TrackPublication which belongs to the LocalParticipant.
LocalTrackPublishedEvent
When the local participant publishes a new Track to the room. Emitted by Room and LocalParticipant.
LocalTrackSubscribedEvent
LocalTrackUnpublishedEvent
The local participant has unpublished one of their Track. Emitted by Room and LocalParticipant.
LocalVideoTrack
A video track from the local device. Use static methods in this class to create video tracks.
MediaDevice
MessageReceiver
Receives messages produced by the agent.
MessageSender
Sends messages to the agent.
Participant<T extends TrackPublication<Track>>
Represents a Participant in the room, notifies changes via delegates as well as ChangeNotifier/providers. A change notification is triggered when
ParticipantAttributesChanged
Participant's attributes have changed. Emitted by Room.
ParticipantConnectedEvent
When a new RemoteParticipant joins after the current participant has connected It will not fire for participants that are already in the room Emitted by Room.
ParticipantConnectionQualityUpdatedEvent
Pariticpant's ConnectionQuality has updated. Emitted by Room and Participant.
ParticipantDisconnectedEvent
When a RemoteParticipant leaves the room Emitted by Room.
ParticipantMetadataUpdatedEvent
Participant metadata is a simple way for app-specific state to be pushed to all users. When RoomService.UpdateParticipantMetadata is called to change a Participant's state, all Participants in the room will fire this event. Emitted by Room and Participant.
ParticipantNameUpdatedEvent
ParticipantPermissions
ParticipantPermissionsUpdatedEvent
The ParticipantPermissions updated for the Participant. Currently, only for LocalParticipant. Emitted by Room and LocalParticipant.
ParticipantStateUpdatedEvent
ParticipantTrackPermission
PerformRpcParams
PreConnectAudioBuffer
Captures and buffers microphone audio before a room connection completes.
PreConnectAudioBufferStartedEvent
Pre-connect audio buffer has started recording. Emitted by Room.
PreConnectAudioBufferStoppedEvent
Pre-connect audio buffer has stopped recording. Emitted by Room.
ProcessorOptions<T extends TrackType>
PublishOptions
ReceivedMessage
A message received from the agent.
ReceivedMessageContent
Base class for message content types that can be received from the agent.
RemoteAudioTrack
RemoteParticipant
Represents other participant in the Room.
RemoteTrack
RemoteTrackPublication<T extends RemoteTrack>
Represents a track publication from a RemoteParticipant. Provides methods to control if we should subscribe to the track, and its quality (for video).
RemoteVideoTrack
Room
Room is the primary construct for LiveKit conferences. It contains a group of Participants, each publishing and subscribing to Tracks. Notifies changes to its state via two ways, by assigning a delegate, or using it as a provider. Room will trigger a change notification update when
RoomAgentDispatch
Configuration for dispatching an agent to a room.
RoomAttemptReconnectEvent
report the number of attempts to reconnect to the room.
RoomConfiguration
Configuration for a LiveKit room.
RoomConnectedEvent
RoomDisconnectedEvent
Disconnected from the room Emitted by Room.
RoomMetadataChangedEvent
Room metadata has changed. Emitted by Room.
RoomMovedEvent
Fired when the participant has been moved to a different room by the server. Emitted by Room.
RoomOptions
Options used to modify the behavior of the Room.
RoomReconnectedEvent
Connection to room is re-established. All existing state is preserved. Emitted by Room.
RoomReconnectingEvent
When the connection to the server has been interrupted and it's attempting to reconnect. Emitted by Room.
RoomRecordingStatusChanged
Room recording status has changed. Emitted by Room.
RpcInvocationData
RTCConfiguration
RTCIceServer
SandboxTokenSource
A token source that queries LiveKit's sandbox token server for development and testing.
ScreenSelectDialog
ScreenShareCaptureOptions
Options used when creating a LocalVideoTrack that captures the screen.
SendFileOptions
SendTextOptions
SentMessage
A message sent to the agent.
SentMessageContent
Base class for message content types that can be sent to the agent.
SentUserInput
User-provided text input.
Session
A Session represents a connection to a LiveKit Room that can contain an agent.
SessionError
Represents an error that occurred during a Session.
SessionOptions
Options for creating a Session.
SimulcastTrackInfo
SpeakingChangedEvent
The participant's isSpeaking property has changed Emitted by Participant.
StreamBytesOptions
StreamTextOptions
StreamWriter<T>
TextMessageSender
Sends text messages to the agent and emits a loopback message so the UI can reflect the user's input immediately.
TextStreamInfo
TextStreamReader
TextStreamWriter
ThumbnailWidget
ThumbnailWidgetState
Timeouts
TokenRequestOptions
Request parameters for generating connection credentials.
TokenSourceConfigurable
A token source that provides configurable options for room, participant, and agent parameters.
TokenSourceFixed
A token source that returns a fixed set of credentials without configurable options.
TokenSourceRequest
The JSON serializable format of the request sent to standard LiveKit token servers.
TokenSourceResponse
Response containing the credentials needed to connect to a LiveKit room.
TokenStore
Protocol for storing and retrieving cached token credentials.
TokenStoreItem
A tuple containing the request options and response that were cached.
Track
Wrapper around a MediaStreamTrack with additional metadata. Base for AudioTrack and VideoTrack, can not be instantiated directly.
TrackE2EEStateEvent
The E2EEState on the track. Emitted by E2EEManager.
TrackMutedEvent
A Participant has muted one of the tracks. Emitted by RemoteParticipant and LocalParticipant.
TrackOption<E extends Object, T extends Object>
TrackProcessor<T extends ProcessorOptions<TrackType>>
TrackProcessorUpdateEvent
TrackPublication<T extends Track>
Represents a track that's published to the server. This class contains metadata associated with tracks.
TrackPublishedEvent
When a new Track is published to Room after the current participant has joined. It will not fire for tracks that are already published. Emitted by Room and RemoteParticipant.
TrackStreamStateUpdatedEvent
The StreamState on the RemoteTrackPublication has updated by the server. See RemoteTrackPublication.streamState for more information. Emitted by Room and RemoteParticipant.
TrackSubscribedEvent
LocalParticipant has subscribed to a new track published by a RemoteParticipant. Emitted by Room and RemoteParticipant.
TrackSubscriptionExceptionEvent
An error has occurred during track subscription. Emitted by Room and RemoteParticipant.
TrackSubscriptionPermissionChangedEvent
One of subscribed tracks have changed its permissions for the current participant. If permission was revoked, then the track will no longer be subscribed. If permission was granted, a TrackSubscribed event will be emitted.
TrackUnmutedEvent
This participant has unmuted one of their tracks Emitted by RemoteParticipant and LocalParticipant.
TrackUnpublishedEvent
The participant has unpublished one of their Track. Emitted by Room and RemoteParticipant.
TrackUnsubscribedEvent
The LocalParticipant has unsubscribed from a track published by a RemoteParticipant. This event is fired when the track was unpublished. Emitted by Room and RemoteParticipant.
TranscriptionAttributes
TranscriptionEvent
Transcription event received from the server.
TranscriptionSegment
TranscriptionStreamReceiver
Converts LiveKit transcription text streams into ReceivedMessages.
UserInput
A message that originated from user input (loopback).
UserTranscript
A transcript emitted for the user (e.g., speech-to-text).
VideoCaptureOptions
Base class for options when creating a LocalVideoTrack.
VideoDimensions
A simple class that represents dimensions of video.
VideoEncoding
A type that represents video encoding information.
VideoParameters
VideoProcessorOptions
VideoPublishOptions
Options used when publishing video.
VideoReceiverStatsEvent
VideoSenderStatsEvent
VideoTrackRenderer
Widget that renders a VideoTrack.
WritableStream<T>

Enums

AgentFailure
Describes why an Agent failed to connect.
AgentInput
AgentOutput
AgentState
BrowserType
CameraExposureMode
CameraFocusMode
CameraPosition
A type that represents front or back of the camera.
ConnectionErrorReason
ConnectionQuality
Connection quality between the Participant and server.
ConnectionState
Connection state type used throughout the SDK.
DegradationPreference
DisconnectReason
E2EEState
EncryptionType
LoggerLevel
ParticipantKind
The type of participant.
ParticipantState
Represents the state of a participant in the room.
PlatformType
Priority
Priority levels for RTP encoding parameters.
ProtocolVersion
Protocol version to use when connecting to server. Usually it's not recommended to change this.
Reliability
Reliability used for publishing data through data channel.
RTCIceTransportPolicy
The iceTransportPolicy used for RTCConfiguration. See https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection
SessionErrorKind
StreamState
The state of track data stream. This is controlled by server to optimize bandwidth.
TextStreamOperationType
Operation types for text streams
TrackSource
TrackSubscribeFailReason
The reason why a track failed to publish.
TrackSubscriptionState
TrackType
The type of track.
VideoQuality
Video quality used for publishing video tracks.
VideoRenderMode
VideoViewFit
VideoViewMirrorMode

Mixins

AudioTrack
Used to group LocalAudioTrack and RemoteAudioTrack.
EngineEvent
Base type for all Engine events.
EventsEmittable<T>
InternalEvent
Base type for internal-only events.
LiveKitEvent
Base type for all LiveKit events.
ParticipantEvent
Base type for all Participant events.
RoomEvent
Base type for all Room events.
SignalEvent
Base type for all SignalClient events.
TrackEvent
Base type for all Track events.
VideoTrack
Used to group LocalVideoTrack and RemoteVideoTrack.

Extensions

AgentRoom on Room
AudioEncodingExt on AudioEncoding
Convenience extension for AudioEncoding.
CachedTokenSource on TokenSourceConfigurable
Extension to add caching capabilities to any TokenSourceConfigurable.
CameraPositionExt on CameraPosition
Convenience extension for CameraPosition.
DataStreamParticipantMethods on LocalParticipant
DataStreamRoomMethods on Room
LiveKitClaims on JWT
Extension to extract LiveKit-specific claims from JWT tokens.
LocalVideoTrackExt on LocalVideoTrack
ParticipantPermissionExt on ParticipantPermission
ParticipantStateExt on ParticipantInfo_State
PriorityExt on Priority
RoomDebugMethods on Room
RoomHardwareManagementMethods on Room
Room extension methods for managing audio, video.
RoomPreConnect on Room
RoomPrivateMethods on Room
RoomRPCMethods on Room
RPCMethods on LocalParticipant
TokenSourceJwt on TokenSourceResponse
VideoDimensionsHelpers on VideoDimensions
VideoDimensionsPresets on VideoDimensions
VideoEncodingExt on VideoEncoding
Convenience extension for VideoEncoding.
VideoParametersPresets on VideoParameters
VideoViewFitExt on VideoViewFit
WidgetsBindingCompatible on WidgetsBinding

Constants

defaultDiscardFrameWhenCryptorNotReady → const bool
defaultFailureTolerance → const int
defaultKeyRingSize → const int
defaultMagicBytes → const String
defaultRatchetSalt → const String
defaultRatchetWindowSize → const int
kStreamChunkSize → const int

Properties

backupCodecs List<String>
final
kRpcMaxPayloadBytes int
Maximum payload size for RPC requests and responses. If a payload exceeds this size, the RPC call will fail with a REQUEST_PAYLOAD_TOO_LARGE(1402) or RESPONSE_PAYLOAD_TOO_LARGE(1504) error.
final
kRpcVesion int
final
logger Logger
final
videoCodecs List<String>
final

Functions

agentAttributesFromJson(String source) AgentAttributes
agentAttributesToJson(AgentAttributes value) String
createVisualizer(AudioTrack track, {AudioVisualizerOptions? options}) AudioVisualizer
disableLogging() → void
disable logging
getLoggingLevel() Level
get the current logging level
isBackupCodec(String codec) bool
isChrome129OrLater() bool
isResponseExpired(TokenSourceResponse response, {Duration tolerance = const Duration(seconds: 60), DateTime? currentTime}) bool
Validates whether the JWT token in the response is expired or invalid.
lkBrowser() BrowserType
lkBrowserVersion() BrowserVersion
lkPlatform() PlatformType
lkPlatformIs(PlatformType type) bool
lkPlatformIsDesktop() bool
lkPlatformIsMobile() bool
lkPlatformIsTest() bool
lkPlatformIsWebMobile() bool
lkPlatformSupportsE2EE() bool
setLoggingLevel(LoggerLevel level) → void
set the logging level
skipStopForTrackMute() bool
skips stop/replaceTrack for the following platforms and only toggles track.enabled.
transcriptionAttributesFromJson(String source) TranscriptionAttributes
transcriptionAttributesToJson(TranscriptionAttributes value) String

Typedefs

ByteStreamHandler = void Function(ByteStreamReader reader, String participantIdentity)
CancelListenFunc = Future<void> Function()
CustomTokenFunction = Future<TokenSourceResponse> Function(TokenRequestOptions options)
Function signature for custom token generation logic.
PreConnectOnError = void Function(Object error)
RpcRequestHandler = Future<String> Function(RpcInvocationData data)
TextStreamHandler = dynamic Function(TextStreamReader reader, String participantIdentity)
TokenValidator = bool Function(TokenRequestOptions options, TokenSourceResponse response)
A validator function that determines if cached credentials are still valid.

Exceptions / Errors

ConnectException
An exception occurred while attempting to connect. Common reasons:
DataPublishException
Failed to publish data. Common reasons:
LiveKitE2EEException
An exception for End to End Encryption.
LiveKitException
Base class for Exceptions thrown by the LiveKit SDK
MediaConnectException
An exception occurred while attempting to disconnect. Common reasons:
NegotiationError
Exception thrown when pc negotiation fails.
RpcError
TimeoutException
A certain time has passed while attempting to execute an operation.
TokenSourceHttpException
Error thrown when the token server responds with a non-success HTTP status code.
TrackCreateException
Failed to create a local track. Common reasons:
TrackPublishException
Failed to publish a local track. Common reasons:
UnexpectedConnectionState
UnexpectedStateException
An internal state of the SDK is not correct and can not continue to execute. This should not occur frequently.