updateReceiveSettings()
updateReceiveSettings( {id or base: {settings}} )
Updates how you want to receive tracks that you're subscribed to.
Receive settings can be configured for any or all participants during a call, as well as for "base", which are the settings that are "inherited" by all current and future participants (providing any defaults values that aren't explicitly set on those participants).
So far, the only configurable receive settings are the desired maximum simulcast layers for video
and screenVideo
. A higher simulcast layer corresponds to higher quality.
NOTE: simulcast layer settings only apply when the call is in SFU mode. Desktop users support 3 video layers (0-2), while mobile users only support 2 layers (0 and 1). screenVideo by default only has a single layer (0), but can have multiple if configured via sendSettings
. If you request a higher simulcast layer than is available, that's allowed: you will simply receive the highest one available.
Note: Setting receive settings for a participant at join time is atypical, since you likely don't have a participant ID for another participant at this time, but is possible.
Note: Updating base settings that all participants' settings inherit will update all participants' settings currently inheriting from base, or rather, all participants' settings that have not been explicitly set.
Note: The '*'
key is only supported in updateReceiveSettings()
and not in the receiveSettings
call config property to avoid confusion. It's a shorthand for participants currently connect to you, not to the meeting, so it'd be a no-op before or immediately upon join. Customers who want to specify default settings at or before joining a call should use 'base'
instead.
Specific participant settings take precedence over '*'
settings. As with base
, if partial settings are provided for a specific participant but '*'
specifies more settings, the specific participant will receive those additional '*'
settings.