Desktop Recording SDK Event Types
The Desktop Recording SDK monitors for a variety of different events that you'll be able to subscribe to in your application. Below is a comprehensive list of all events that are currently available:
EventType | Definition |
|---|---|
| Triggered when the user has granted all the required permissions to start recording. |
| Triggered when a meeting is found, either when a new one starts, or after the SDK initializes and there is a meeting already in progress. |
| Triggered when the in-progress recording changes state, either to |
| Triggered when a recording has started. |
| Triggered when a recording has stopped, due to the meeting ending, or calling |
| Triggered when a detected meeting has ended. |
| Triggered when media capture has been interrupted or resumed. In some cases, the meeting window can't be captured, so only audio is received (for instance, when the meeting window is on an inactive virtual desktop). |
| |
| Triggered when real-time data is available, such as transcript information or participant join/leave events. Subscribe to real-time events with |
| Triggered to notify your code of the state of a video upload. |
| Triggered when meeting information has updated (usually when |
| Triggered when the Desktop Recording SDK has encountered an error. Right now, the only type is |
| Triggered on startup to indicate the current status of the required permissions. The permission will be one of
|
| Triggered when the the Desktop Recording SDK shuts down normally. |
Event listeners give you back different events with different structures, here they are:
RecallAiSdk.addEventListener("permissions-granted", async (evt) => {
// The user has granted all the required permsisions to start recording
});
RecallAiSdk.addEventListener("meeting-detected", async (evt) => {
const { window } = evt;
});
RecallAiSdk.addEventListener("sdk-state-change", async (evt) => {
const {sdk: {state: { code }}} = evt;
// code is either "recording" or "idle"
});
RecallAiSdk.addEventListener('recording-ended', async (evt) => {
const { window } = evt;
});
RecallAiSdk.addEventListener('meeting-closed', async (evt) => {
const { window } = evt;
});
RecallAiSdk.addEventListener('realtime-event', async (evt) => {
const {window , type, status} = evt;
});
RecallAiSdk.addEventListener('upload-progress', async (evt) => {
const {
window: { id },
progress: progress
} = evt;
// Progress is a number from 0-100 representing upload completion
});
RecallAiSdk.addEventListener('recording-started', async (evt) => {
const { window } = evt;
});
RecallAiSdk.addEventListener('meeting-updated', async (evt) => {
const { window } = evt;
});
RecallAiSdk.addEventListener('media-capture-status', async (evt) => {
const { window, type, capturing } = evt;
// type is 'video' or 'audio'
// capturing is a boolean indicating capture status
});
RecallAiSdk.addEventListener('participant-capture-status', async (evt) => {
const { window, type, participantId, capturing } = evt;
// type is 'video', 'audio', or 'screenshare'
// capturing is a boolean indicating capture status
});
RecallAiSdk.addEventListener('error', async (evt) => {
const { window, type, message } = evt;
const windowId = window?.id;
});
RecallAiSdk.addEventListener('permission-status', async (evt) => {
const { permission, status } = evt;
// Permission type (e.g. 'microphone'),
// status ["granted", "not_requested", "denied"]
// (see event listener docs below for more information)
});
RecallAiSdk.addEventListener('shutdown', async (evt) => {
const { code, signal } = evt;
});Updated about 2 hours ago