Skip to main content
updateReceiveSettings(receiveSettings) Updates how you receive video tracks from remote participants — specifically, the maximum simulcast layer to decode for each participant’s video and screenVideo tracks. Higher layers correspond to higher quality. Settings can be applied per-participant, to all current participants at once via '*', or to base — a set of defaults inherited by all participants who don’t have explicit settings applied.
Simulcast layer settings only apply in SFU mode. Desktop clients support 3 layers (0–2); mobile clients support 2 layers (0–1). Requesting a higher layer than is available is allowed — you’ll receive the highest available.

Parameters

receiveSettings
DailyReceiveSettingsUpdates
required
An object whose keys identify which participants to update, and whose values are the settings to apply.Each value (other than 'inherit') is a DailySingleParticipantReceiveSettingsUpdates object:

Return value

Returns Promise<DailyReceiveSettings> that resolves with the full updated receive settings for all participants.

Examples

// Set a low-quality default for all participants at join time
call.join({
  url,
  receiveSettings: {
    base: { video: { layer: 0 } },
  },
});
// After joining: lower quality for everyone, promote the active speaker
await call.updateReceiveSettings({
  '*': { video: { layer: 0 } },
  [activeSpeakerSessionId]: { video: { layer: 2 } },
});
// Reset a participant to inherit from base
await call.updateReceiveSettings({
  [sessionId]: 'inherit',
});
// Reset a single track for a participant while leaving others unchanged
await call.updateReceiveSettings({
  [sessionId]: { video: 'inherit' },
});

See also