Beyond commands and events, the Jitsi IFrame API exposes asynchronous functions for querying the live meeting state and managing audio/video devices. Most functions return Promises that resolve with the requested data, allowing you to build dynamic UI controls such as device pickers, mute indicators, and participant lists.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/jitsi/jitsi-meet/llms.txt
Use this file to discover all available pages before exploring further.
Device Query Functions
getAvailableDevices()
Returns a Promise that resolves with all media devices available to the browser, grouped by type. Each device entry contains a deviceId, groupId, kind, and label.
getCurrentDevices()
Returns a Promise that resolves with the currently selected audio and video devices.
isDeviceChangeAvailable(deviceType?)
Returns a Promise resolving to true if the browser supports switching the specified device type at runtime. Returns false if switching is not possible (e.g. the browser does not expose the device API).
The device category to check. Pass
'output' for audio output, 'input' for audio/video input, or omit the argument to check both simultaneously.isMultipleAudioInputSupported()
Returns a Promise resolving to true if the browser supports selecting multiple audio input devices. When false, only the default microphone will be available.
Device Control Functions
setAudioInputDevice(label, deviceId)
Sets the active microphone to the device matching the given label or device ID. Returns a Promise that resolves when the switch is complete.
The human-readable label of the target device (e.g.
'Built-in Microphone'). Used as the primary identifier if provided.The
deviceId string from the MediaDeviceInfo object. Used when label is empty or not unique.setAudioOutputDevice(label, deviceId)
Sets the active audio output device (speakers or headphones). Returns a Promise.
The human-readable label of the target output device.
The
deviceId from MediaDeviceInfo.Audio output selection is only available in browsers that support the
setSinkId API (Chromium-based browsers). isDeviceChangeAvailable('output') will return false in unsupported browsers such as Firefox.setVideoInputDevice(label, deviceId)
Sets the active camera to the specified device. Returns a Promise.
The human-readable label of the target camera (e.g.
'FaceTime HD Camera').The
deviceId from MediaDeviceInfo.Meeting State Query Functions
getRoomsInfo()
Returns a Promise that resolves with the current conference room structure, including all breakout rooms and their participant lists.
getParticipantsInfo()
Returns a synchronous array of objects describing all current conference participants, including the local user. Each object contains the participant’s stored metadata.
getParticipantsInfo() reads from the API’s in-memory participant cache and is synchronous — it does not return a Promise.getVideoQuality()
Returns the current video quality setting as a number (height in pixels). This is also synchronous and reads from the cached value received via the videoQualityChanged event.
getNumberOfParticipants()
Returns the current total participant count across all rooms (including breakout rooms) as a synchronous integer.
isAudioMuted()
Returns a Promise resolving to true if the local participant’s microphone is currently muted.
isVideoMuted()
Returns a Promise resolving to true if the local participant’s camera is currently off.
isAudioDisabled()
Returns a Promise resolving to true if audio has been disabled entirely (e.g. by moderation or a configuration policy), distinct from the user muting themselves.
isAudioAvailable()
Returns a Promise resolving to true if an audio input device is available.
isVideoAvailable()
Returns a Promise resolving to true if a video input device is available.
isSharingScreen()
Returns a Promise resolving to true if the local participant is currently sharing their screen.
isP2pActive()
Returns a Promise resolving to true if the call is currently running in peer-to-peer (P2P) mode rather than through a Jitsi Video Bridge.
getSessionId()
Returns a Promise that resolves with the unique session ID for the current conference.
getIFrame()
Returns the underlying HTMLIFrameElement synchronously. Useful if you need to style the iframe or attach additional DOM event listeners directly.
