MultimediaSessionFlows

Reactive streams for observing multimedia session state.

Use these flows to drive UI updates for call status, participant lists, and audio visualization.

See also

Samples

scope.launch {
    session.event.collect { event ->
        when (event) {
            is MultimediaSessionEvent.Connection.Connected -> {
                // Call connected successfully
            }
            is MultimediaSessionEvent.Connection.Reconnecting -> {
                // Network interruption, attempting to reconnect
            }
            is MultimediaSessionEvent.Connection.Disconnected -> {
                // Call ended or lost connection
            }
            is MultimediaSessionEvent.ParticipantChanged -> {
                // Agent joined or participant state changed
            }
            is MultimediaSessionEvent.Error -> {
                val errorCode = event.code
            }
            else -> {}
        }
    }
}
scope.launch {
    session.remoteParticipants.collect { participants ->
        participants.forEach { participant ->
            val isRemote = participant.origin == MultimediaParticipantOrigin.Remote
            // Use participant.audioTracks for audio visualization
        }
    }
}

Inheritors

Properties

Link copied to clipboard
abstract val event: SharedFlow<MultimediaSessionEvent>

A stream of MultimediaSessionEvent instances emitted during the session lifecycle.

Link copied to clipboard

A stream of the local MultimediaParticipant.

Link copied to clipboard

A stream of remote MultimediaParticipant instances currently in the session.