FlexibleVideoOptions class

Configuration payload for FlexibleVideo.

Powers the MediaSFU main video grid with responsive card sizing and optional screen-share annotation overlays:

  • customWidth / customHeight set requested card dimensions. The widget clamps them to available constraints so cards remain visible even when initial values are large or the viewport is narrow.
  • annotateScreenStream + localStreamScreen enable overlaying annotation canvases atop screen shares. The card width adjusts to the stream's native resolution when annotations are active.
  • Rich builder surface (containerBuilder, gridBuilder, rowBuilder, cellBuilder, screenboardBuilder) lets you inject custom rendering layers while preserving the built-in grid logic.
  • Computed cardSize, cardLeft, and canvasLeft are passed to each builder context so downstream widgets can align or position elements relative to the final card geometry.

Override this component via MediasfuUICustomOverrides.flexibleVideo when you need branded tiling, watermarks, or alternative card layouts.

Constructors

FlexibleVideoOptions.new({required double customWidth, required double customHeight, required int rows, required int columns, required List<Widget> componentsToRender, bool showAspect = true, Color backgroundColor = Colors.transparent, Widget? screenboard, bool annotateScreenStream = false, MediaStream? localStreamScreen, EdgeInsetsGeometry? containerPadding, EdgeInsetsGeometry? containerMargin, Decoration? containerDecoration, AlignmentGeometry? containerAlignment, Clip containerClipBehavior = Clip.none, BoxConstraints? containerConstraints, FlexibleVideoContainerBuilder? containerBuilder, FlexibleVideoGridBuilder? gridBuilder, double? rowSpacing = 2, EdgeInsetsGeometry? rowPadding, EdgeInsetsGeometry? rowMargin, Decoration? rowDecoration, Clip rowClipBehavior = Clip.none, MainAxisAlignment? rowMainAxisAlignment, CrossAxisAlignment? rowCrossAxisAlignment, MainAxisSize rowMainAxisSize = MainAxisSize.min, FlexibleVideoRowBuilder? rowBuilder, double? columnSpacing = 2, EdgeInsetsGeometry? cellPadding, EdgeInsetsGeometry? cellMargin, Decoration? cellDecoration, Clip cellClipBehavior = Clip.none, AlignmentGeometry? cellAlignment, FlexibleVideoCellBuilder? cellBuilder, EdgeInsetsGeometry? screenboardPadding, EdgeInsetsGeometry? screenboardMargin, Decoration? screenboardDecoration, Clip screenboardClipBehavior = Clip.none, AlignmentGeometry? screenboardAlignment, FlexibleVideoScreenboardBuilder? screenboardBuilder})
const

Properties

annotateScreenStream → bool
final
backgroundColor → Color
final
cellAlignment → AlignmentGeometry?
final
cellBuilder → FlexibleVideoCellBuilder?
final
cellClipBehavior → Clip
final
cellDecoration → Decoration?
final
cellMargin → EdgeInsetsGeometry?
final
cellPadding → EdgeInsetsGeometry?
final
columns → int
final
columnSpacing → double?
final
componentsToRender → List<Widget>
final
containerAlignment → AlignmentGeometry?
final
containerBuilder → FlexibleVideoContainerBuilder?
final
containerClipBehavior → Clip
final
containerConstraints → BoxConstraints?
final
containerDecoration → Decoration?
final
containerMargin → EdgeInsetsGeometry?
final
containerPadding → EdgeInsetsGeometry?
final
customHeight → double
final
customWidth → double
final
gridBuilder → FlexibleVideoGridBuilder?
final
hashCode → int
The hash code for this object.
no setterinherited
localStreamScreen → MediaStream?
final
rowBuilder → FlexibleVideoRowBuilder?
final
rowClipBehavior → Clip
final
rowCrossAxisAlignment → CrossAxisAlignment?
final
rowDecoration → Decoration?
final
rowMainAxisAlignment → MainAxisAlignment?
final
rowMainAxisSize → MainAxisSize
final
rowMargin → EdgeInsetsGeometry?
final
rowPadding → EdgeInsetsGeometry?
final
rows → int
final
rowSpacing → double?
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
screenboard → Widget?
final
screenboardAlignment → AlignmentGeometry?
final
screenboardBuilder → FlexibleVideoScreenboardBuilder?
final
screenboardClipBehavior → Clip
final
screenboardDecoration → Decoration?
final
screenboardMargin → EdgeInsetsGeometry?
final
screenboardPadding → EdgeInsetsGeometry?
final
showAspect → bool
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited