QuickRTCState class

Immutable state for QuickRTC

This class represents the complete state of a QuickRTC session, including connection status, local streams, and remote participants.

Example:

QuickRTCBuilder(
  buildWhen: (prev, curr) => prev.status != curr.status,
  builder: (context, state) {
    if (state.isConnected) {
      return ConferenceView(participants: state.participantList);
    }
    return JoinButton();
  },
)

Constructors

QuickRTCState({int version = 0, ConnectionStatus status = ConnectionStatus.disconnected, String? conferenceId, String? participantId, String? participantName, List<LocalStream> localStreams = const [], Map<String, RemoteParticipant> participants = const {}, String? error})
const

Properties

allRemoteStreams List<RemoteStream>
All remote streams from all participants
no setter
conferenceId String?
Conference/room ID (null if not connected)
final
error String?
Current error message (null if no error)
final
hasError bool
Whether there is an error
no setter
hashCode int
The hash code for this object.
no setterinherited
hasLocalAudio bool
Whether local audio is being produced
no setter
hasLocalScreenshare bool
Whether screen is being shared
no setter
hasLocalVideo bool
Whether local video is being produced
no setter
isConnected bool
Whether currently connected to a conference
no setter
isConnecting bool
Whether currently connecting to a conference
no setter
isDisconnected bool
Whether disconnected from any conference
no setter
isLocalAudioActive bool
Whether local audio is active (has audio AND not paused)
no setter
isLocalAudioPaused bool
Whether local audio is paused
no setter
isLocalScreenshareActive bool
Whether local screenshare is active (has screenshare AND not paused)
no setter
isLocalScreensharePaused bool
Whether local screenshare is paused
no setter
isLocalVideoActive bool
Whether local video is active (has video AND not paused)
no setter
isLocalVideoPaused bool
Whether local video is paused
no setter
localAudioStream LocalStream?
Local audio stream (null if not producing audio)
no setter
localScreenshareStream LocalStream?
Local screenshare stream (null if not sharing screen)
no setter
localStreams List<LocalStream>
List of local streams (audio, video, screenshare)
final
localVideoStream LocalStream?
Local video stream (null if not producing video)
no setter
participantCount int
Total number of remote participants
no setter
participantId String?
Local participant ID (null if not connected)
final
participantList List<RemoteParticipant>
List of all remote participants
no setter
participantName String?
Local participant display name
final
participants Map<String, RemoteParticipant>
Map of remote participants by their ID
final
props List<Object?>
The list of properties that will be used to determine whether two instances are equal.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
status ConnectionStatus
Current connection status
final
stringify bool?
If set to true, the toString method will be overridden to output this instance's props.
no setterinherited
version int
Version counter - increments on every state change to ensure inequality This solves issues where nested objects (like MediaStream) don't properly compare, causing Equatable to incorrectly report states as equal.
final

Methods

copyWith({ConnectionStatus? status, String? conferenceId, String? participantId, String? participantName, List<LocalStream>? localStreams, Map<String, RemoteParticipant>? participants, String? error, bool clearError = false, bool clearConferenceId = false, bool clearParticipantId = false, bool clearParticipantName = false}) QuickRTCState
Create a copy of this state with the given fields replaced
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.

Operators

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