lotus(#7): audio/screenshare quality controls via widget action

Adds io.lotus.set_quality (toWidget): caps mic audio bitrate and
screenshare bitrate/framerate via RTCRtpSender.setParameters (no
republish). Settings are sticky and re-applied on LocalTrackPublished so
they survive mute/unmute and reconnects. These encoding controls lived in
EC's module scope, unreachable from the host against the prebuilt bundle.
Additive: no-op unless the host sends the action.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Lotus CI
2026-06-29 23:24:57 -04:00
co-authored by Claude Opus 4.8
parent 2ab9427c09
commit 6d739db8b8
3 changed files with 154 additions and 0 deletions
+3
View File
@@ -23,10 +23,13 @@ export enum LotusWidgetActions {
FocusParticipant = "io.lotus.focus_participant",
/** toWidget: mix an audio clip into the local published mic track. */
InjectAudio = "io.lotus.inject_audio",
/** toWidget: set audio/screenshare encoding quality (bitrate/framerate). */
SetQuality = "io.lotus.set_quality",
}
/** toWidget Lotus actions that must be allow-listed in `initializeWidget`. */
export const LOTUS_TO_WIDGET_ACTIONS: LotusWidgetActions[] = [
LotusWidgetActions.FocusParticipant,
LotusWidgetActions.InjectAudio,
LotusWidgetActions.SetQuality,
];