Package-level declarations

Functions

Link copied to clipboard
fun LivestreamPlayer(modifier: Modifier = Modifier, call: Call, enablePausing: Boolean = true, onPausedPlayer: (isPaused: Boolean) -> Unit? = {}, backstageContent: @Composable BoxScope.(Call) -> Unit = { LivestreamBackStage() }, videoRendererConfig: VideoRendererConfig = videoRenderConfig(), livestreamFlow: Flow<ParticipantState.Video?> = call.state.participants.flatMapLatest { participants: List<ParticipantState> -> // For each participant, create a small Flow that watches videoEnabled. val participantVideoFlows = participants.map { participant -> participant.videoEnabled.map { enabled -> participant to enabled } } // Combine these Flows: whenever a participant’s videoEnabled changes, // we re-calculate which participants have video. combine(participantVideoFlows) { participantEnabledPairs -> participantEnabledPairs .filter { (_, isEnabled) -> isEnabled } .map { (participant, _) -> participant } } }.flatMapLatest { participantWithVideo -> participantWithVideo.firstOrNull()?.video ?: flow { emit(null) } }, rendererContent: @Composable BoxScope.(Call) -> Unit = { LivestreamRenderer( call = call, enablePausing = enablePausing, onPausedPlayer = onPausedPlayer, configuration = videoRendererConfig, livestreamFlow = livestreamFlow, ) }, overlayContent: @Composable BoxScope.(Call) -> Unit = { LivestreamPlayerOverlay(call = call) })

Represents livestreaming content based on the call state provided from the call.

Inherited functions