UNPKG

livekit-client

Version:

JavaScript/TypeScript client SDK for LiveKit

562 lines 20.9 kB
/** * Events are the primary way LiveKit notifies your application of changes. * * The following are events emitted by [[Room]], listen to room events like * * ```typescript * room.on(RoomEvent.TrackPublished, (track, publication, participant) => {}) * ``` */ export declare enum RoomEvent { /** * When the connection to the server has been established */ Connected = "connected", /** * When the connection to the server has been interrupted and it's attempting * to reconnect. */ Reconnecting = "reconnecting", /** * When the signal connection to the server has been interrupted. This isn't noticeable to users most of the time. * It will resolve with a `RoomEvent.Reconnected` once the signal connection has been re-established. * If media fails additionally it an additional `RoomEvent.Reconnecting` will be emitted. */ SignalReconnecting = "signalReconnecting", /** * Fires when a reconnection has been successful. */ Reconnected = "reconnected", /** * When disconnected from room. This fires when room.disconnect() is called or * when an unrecoverable connection issue had occured. * * DisconnectReason can be used to determine why the participant was disconnected. Notable reasons are * - DUPLICATE_IDENTITY: another client with the same identity has joined the room * - PARTICIPANT_REMOVED: participant was removed by RemoveParticipant API * - ROOM_DELETED: the room has ended via DeleteRoom API * * args: ([[DisconnectReason]]) */ Disconnected = "disconnected", /** * Whenever the connection state of the room changes * * args: ([[ConnectionState]]) */ ConnectionStateChanged = "connectionStateChanged", /** * When input or output devices on the machine have changed. */ MediaDevicesChanged = "mediaDevicesChanged", /** * When a [[RemoteParticipant]] joins *after* the local * participant. It will not emit events for participants that are already * in the room * * args: ([[RemoteParticipant]]) */ ParticipantConnected = "participantConnected", /** * When a [[RemoteParticipant]] leaves *after* the local * participant has joined. * * args: ([[RemoteParticipant]]) */ ParticipantDisconnected = "participantDisconnected", /** * When a new track is published to room *after* the local * participant has joined. It will not fire for tracks that are already published. * * A track published doesn't mean the participant has subscribed to it. It's * simply reflecting the state of the room. * * args: ([[RemoteTrackPublication]], [[RemoteParticipant]]) */ TrackPublished = "trackPublished", /** * The [[LocalParticipant]] has subscribed to a new track. This event will **always** * fire as long as new tracks are ready for use. * * args: ([[RemoteTrack]], [[RemoteTrackPublication]], [[RemoteParticipant]]) */ TrackSubscribed = "trackSubscribed", /** * Could not subscribe to a track * * args: (track sid, [[RemoteParticipant]]) */ TrackSubscriptionFailed = "trackSubscriptionFailed", /** * A [[RemoteParticipant]] has unpublished a track * * args: ([[RemoteTrackPublication]], [[RemoteParticipant]]) */ TrackUnpublished = "trackUnpublished", /** * A subscribed track is no longer available. Clients should listen to this * event and ensure they detach tracks. * * args: ([[Track]], [[RemoteTrackPublication]], [[RemoteParticipant]]) */ TrackUnsubscribed = "trackUnsubscribed", /** * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]] * * args: ([[TrackPublication]], [[Participant]]) */ TrackMuted = "trackMuted", /** * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]] * * args: ([[TrackPublication]], [[Participant]]) */ TrackUnmuted = "trackUnmuted", /** * A local track was published successfully. This event is helpful to know * when to update your local UI with the newly published track. * * args: ([[LocalTrackPublication]], [[LocalParticipant]]) */ LocalTrackPublished = "localTrackPublished", /** * A local track was unpublished. This event is helpful to know when to remove * the local track from your UI. * * When a user stops sharing their screen by pressing "End" on the browser UI, * this event will also fire. * * args: ([[LocalTrackPublication]], [[LocalParticipant]]) */ LocalTrackUnpublished = "localTrackUnpublished", /** * When a local audio track is published the SDK checks whether there is complete silence * on that track and emits the LocalAudioSilenceDetected event in that case. * This allows for applications to show UI informing users that they might have to * reset their audio hardware or check for proper device connectivity. */ LocalAudioSilenceDetected = "localAudioSilenceDetected", /** * Active speakers changed. List of speakers are ordered by their audio level. * loudest speakers first. This will include the LocalParticipant too. * * Speaker updates are sent only to the publishing participant and their subscribers. * * args: (Array<[[Participant]]>) */ ActiveSpeakersChanged = "activeSpeakersChanged", /** * 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. * * args: (prevMetadata: string, [[Participant]]) * */ ParticipantMetadataChanged = "participantMetadataChanged", /** * Participant's display name changed * * args: (name: string, [[Participant]]) * */ ParticipantNameChanged = "participantNameChanged", /** * Participant attributes is an app-specific key value state to be pushed to * all users. * When a participant's attributes changed, this event will be emitted with the changed attributes and the participant */ ParticipantAttributesChanged = "participantAttributesChanged", /** * Room metadata is a simple way for app-specific state to be pushed to * all users. * When RoomService.UpdateRoomMetadata is called to change a room's state, * *all* participants in the room will fire this event. * * args: (string) */ RoomMetadataChanged = "roomMetadataChanged", /** * Data received from another participant. * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads. * All participants in the room will receive the messages sent to the room. * * args: (payload: Uint8Array, participant: [[Participant]], kind: [[DataPacket_Kind]], topic?: string) */ DataReceived = "dataReceived", /** * SIP DTMF tones received from another participant. * * args: (participant: [[Participant]], dtmf: [[DataPacket_Kind]]) */ SipDTMFReceived = "sipDTMFReceived", /** * Transcription received from a participant's track. * @beta */ TranscriptionReceived = "transcriptionReceived", /** * Connection quality was changed for a Participant. It'll receive updates * from the local participant, as well as any [[RemoteParticipant]]s that we are * subscribed to. * * args: (connectionQuality: [[ConnectionQuality]], participant: [[Participant]]) */ ConnectionQualityChanged = "connectionQualityChanged", /** * StreamState indicates if a subscribed (remote) track has been paused by the SFU * (typically this happens because of subscriber's bandwidth constraints) * * When bandwidth conditions allow, the track will be resumed automatically. * TrackStreamStateChanged will also be emitted when that happens. * * args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]], * participant: [[RemoteParticipant]]) */ TrackStreamStateChanged = "trackStreamStateChanged", /** * 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. * * args: (pub: [[RemoteTrackPublication]], * status: [[TrackPublication.PermissionStatus]], * participant: [[RemoteParticipant]]) */ TrackSubscriptionPermissionChanged = "trackSubscriptionPermissionChanged", /** * One of subscribed tracks have changed its status for the current * participant. * * args: (pub: [[RemoteTrackPublication]], * status: [[TrackPublication.SubscriptionStatus]], * participant: [[RemoteParticipant]]) */ TrackSubscriptionStatusChanged = "trackSubscriptionStatusChanged", /** * LiveKit will attempt to autoplay all audio tracks when you attach them to * audio elements. However, if that fails, we'll notify you via AudioPlaybackStatusChanged. * `Room.canPlaybackAudio` will indicate if audio playback is permitted. */ AudioPlaybackStatusChanged = "audioPlaybackChanged", /** * LiveKit will attempt to autoplay all video tracks when you attach them to * a video element. However, if that fails, we'll notify you via VideoPlaybackStatusChanged. * Calling `room.startVideo()` in a user gesture event handler will resume the video playback. */ VideoPlaybackStatusChanged = "videoPlaybackChanged", /** * When we have encountered an error while attempting to create a track. * The errors take place in getUserMedia(). * Use MediaDeviceFailure.getFailure(error) to get the reason of failure. * [[LocalParticipant.lastCameraError]] and [[LocalParticipant.lastMicrophoneError]] * will indicate if it had an error while creating the audio or video track respectively. * * args: (error: Error) */ MediaDevicesError = "mediaDevicesError", /** * A participant's permission has changed. Currently only fired on LocalParticipant. * args: (prevPermissions: [[ParticipantPermission]], participant: [[Participant]]) */ ParticipantPermissionsChanged = "participantPermissionsChanged", /** * Signal connected, can publish tracks. */ SignalConnected = "signalConnected", /** * Recording of a room has started/stopped. Room.isRecording will be updated too. * args: (isRecording: boolean) */ RecordingStatusChanged = "recordingStatusChanged", ParticipantEncryptionStatusChanged = "participantEncryptionStatusChanged", EncryptionError = "encryptionError", /** * Emits whenever the current buffer status of a data channel changes * args: (isLow: boolean, kind: [[DataPacket_Kind]]) */ DCBufferStatusChanged = "dcBufferStatusChanged", /** * Triggered by a call to room.switchActiveDevice * args: (kind: MediaDeviceKind, deviceId: string) */ ActiveDeviceChanged = "activeDeviceChanged", /** * fired when the first remote participant has subscribed to the localParticipant's track */ LocalTrackSubscribed = "localTrackSubscribed" } export declare enum ParticipantEvent { /** * When a new track is published to room *after* the local * participant has joined. It will not fire for tracks that are already published. * * A track published doesn't mean the participant has subscribed to it. It's * simply reflecting the state of the room. * * args: ([[RemoteTrackPublication]]) */ TrackPublished = "trackPublished", /** * Successfully subscribed to the [[RemoteParticipant]]'s track. * This event will **always** fire as long as new tracks are ready for use. * * args: ([[RemoteTrack]], [[RemoteTrackPublication]]) */ TrackSubscribed = "trackSubscribed", /** * Could not subscribe to a track * * args: (track sid) */ TrackSubscriptionFailed = "trackSubscriptionFailed", /** * A [[RemoteParticipant]] has unpublished a track * * args: ([[RemoteTrackPublication]]) */ TrackUnpublished = "trackUnpublished", /** * A subscribed track is no longer available. Clients should listen to this * event and ensure they detach tracks. * * args: ([[RemoteTrack]], [[RemoteTrackPublication]]) */ TrackUnsubscribed = "trackUnsubscribed", /** * A track that was muted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]] * * args: ([[TrackPublication]]) */ TrackMuted = "trackMuted", /** * A track that was unmuted, fires on both [[RemoteParticipant]]s and [[LocalParticipant]] * * args: ([[TrackPublication]]) */ TrackUnmuted = "trackUnmuted", /** * A local track was published successfully. This event is helpful to know * when to update your local UI with the newly published track. * * args: ([[LocalTrackPublication]]) */ LocalTrackPublished = "localTrackPublished", /** * A local track was unpublished. This event is helpful to know when to remove * the local track from your UI. * * When a user stops sharing their screen by pressing "End" on the browser UI, * this event will also fire. * * args: ([[LocalTrackPublication]]) */ LocalTrackUnpublished = "localTrackUnpublished", /** * 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. * To access the current metadata, see [[Participant.metadata]]. * * args: (prevMetadata: string) * */ ParticipantMetadataChanged = "participantMetadataChanged", /** * Participant's display name changed * * args: (name: string, [[Participant]]) * */ ParticipantNameChanged = "participantNameChanged", /** * Data received from this participant as sender. * Data packets provides the ability to use LiveKit to send/receive arbitrary payloads. * All participants in the room will receive the messages sent to the room. * * args: (payload: Uint8Array, kind: [[DataPacket_Kind]]) */ DataReceived = "dataReceived", /** * SIP DTMF tones received from this participant as sender. * * args: (dtmf: [[DataPacket_Kind]]) */ SipDTMFReceived = "sipDTMFReceived", /** * Transcription received from this participant as data source. * @beta */ TranscriptionReceived = "transcriptionReceived", /** * Has speaking status changed for the current participant * * args: (speaking: boolean) */ IsSpeakingChanged = "isSpeakingChanged", /** * Connection quality was changed for a Participant. It'll receive updates * from the local participant, as well as any [[RemoteParticipant]]s that we are * subscribed to. * * args: (connectionQuality: [[ConnectionQuality]]) */ ConnectionQualityChanged = "connectionQualityChanged", /** * StreamState indicates if a subscribed track has been paused by the SFU * (typically this happens because of subscriber's bandwidth constraints) * * When bandwidth conditions allow, the track will be resumed automatically. * TrackStreamStateChanged will also be emitted when that happens. * * args: (pub: [[RemoteTrackPublication]], streamState: [[Track.StreamState]]) */ TrackStreamStateChanged = "trackStreamStateChanged", /** * 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. * * args: (pub: [[RemoteTrackPublication]], * status: [[TrackPublication.SubscriptionStatus]]) */ TrackSubscriptionPermissionChanged = "trackSubscriptionPermissionChanged", /** * One of the remote participants publications has changed its subscription status. * */ TrackSubscriptionStatusChanged = "trackSubscriptionStatusChanged", /** @internal */ MediaDevicesError = "mediaDevicesError", /** @internal */ AudioStreamAcquired = "audioStreamAcquired", /** * A participant's permission has changed. Currently only fired on LocalParticipant. * args: (prevPermissions: [[ParticipantPermission]]) */ ParticipantPermissionsChanged = "participantPermissionsChanged", /** @internal */ PCTrackAdded = "pcTrackAdded", /** * Participant attributes is an app-specific key value state to be pushed to * all users. * When a participant's attributes changed, this event will be emitted with the changed attributes */ AttributesChanged = "attributesChanged", /** * fired on local participant only, when the first remote participant has subscribed to the track specified in the payload */ LocalTrackSubscribed = "localTrackSubscribed" } /** @internal */ export declare enum EngineEvent { TransportsCreated = "transportsCreated", Connected = "connected", Disconnected = "disconnected", Resuming = "resuming", Resumed = "resumed", Restarting = "restarting", Restarted = "restarted", SignalResumed = "signalResumed", SignalRestarted = "signalRestarted", Closing = "closing", MediaTrackAdded = "mediaTrackAdded", ActiveSpeakersUpdate = "activeSpeakersUpdate", DataPacketReceived = "dataPacketReceived", RTPVideoMapUpdate = "rtpVideoMapUpdate", DCBufferStatusChanged = "dcBufferStatusChanged", ParticipantUpdate = "participantUpdate", RoomUpdate = "roomUpdate", SpeakersChanged = "speakersChanged", StreamStateChanged = "streamStateChanged", ConnectionQualityUpdate = "connectionQualityUpdate", SubscriptionError = "subscriptionError", SubscriptionPermissionUpdate = "subscriptionPermissionUpdate", RemoteMute = "remoteMute", SubscribedQualityUpdate = "subscribedQualityUpdate", LocalTrackUnpublished = "localTrackUnpublished", LocalTrackSubscribed = "localTrackSubscribed", Offline = "offline", SignalRequestResponse = "signalRequestResponse" } export declare enum TrackEvent { Message = "message", Muted = "muted", Unmuted = "unmuted", /** * Only fires on LocalTracks */ Restarted = "restarted", Ended = "ended", Subscribed = "subscribed", Unsubscribed = "unsubscribed", /** @internal */ UpdateSettings = "updateSettings", /** @internal */ UpdateSubscription = "updateSubscription", /** @internal */ AudioPlaybackStarted = "audioPlaybackStarted", /** @internal */ AudioPlaybackFailed = "audioPlaybackFailed", /** * @internal * Only fires on LocalAudioTrack instances */ AudioSilenceDetected = "audioSilenceDetected", /** @internal */ VisibilityChanged = "visibilityChanged", /** @internal */ VideoDimensionsChanged = "videoDimensionsChanged", /** @internal */ VideoPlaybackStarted = "videoPlaybackStarted", /** @internal */ VideoPlaybackFailed = "videoPlaybackFailed", /** @internal */ ElementAttached = "elementAttached", /** @internal */ ElementDetached = "elementDetached", /** * @internal * Only fires on LocalTracks */ UpstreamPaused = "upstreamPaused", /** * @internal * Only fires on LocalTracks */ UpstreamResumed = "upstreamResumed", /** * @internal * Fires on RemoteTrackPublication */ SubscriptionPermissionChanged = "subscriptionPermissionChanged", /** * Fires on RemoteTrackPublication */ SubscriptionStatusChanged = "subscriptionStatusChanged", /** * Fires on RemoteTrackPublication */ SubscriptionFailed = "subscriptionFailed", /** * @internal */ TrackProcessorUpdate = "trackProcessorUpdate", /** * @internal */ AudioTrackFeatureUpdate = "audioTrackFeatureUpdate", /** * @beta */ TranscriptionReceived = "transcriptionReceived", /** * @experimental */ TimeSyncUpdate = "timeSyncUpdate" } //# sourceMappingURL=events.d.ts.map