renderCompose

Composable extension for rendering AlertComponent in Jetpack Compose


fun AudioCard.renderCompose(modifier: Modifier = Modifier)

Composable render function for AudioCard.


Composable extension for rendering AudioDecibelCheck in Jetpack Compose


Composable extension for rendering AudioGrid in Jetpack Compose


Composable extension for rendering CardVideoDisplay in Jetpack Compose

NOTE: This is a placeholder implementation. Full video rendering requires platform-specific code.

For production use, implement platform-specific video renderers:

Android: Use AndroidView with SurfaceViewRenderer from WebRTC

AndroidView(
factory = { context ->
SurfaceViewRenderer(context).apply {
init(EglBase.create().eglBaseContext, null)
setScalingType(if (forceFullDisplay)
RendererCommon.ScalingType.SCALE_ASPECT_FILL
else RendererCommon.ScalingType.SCALE_ASPECT_FIT)
setMirror(doMirror)

// Attach video track from stream
videoStream?.getVideoTracks()?.firstOrNull()?.let { track ->
track.addSink(this)
}
}
},
update = { view ->
// Update when stream changes
},
onRelease = { view ->
view.release()
}
)

iOS: Use UIViewRepresentable with RTCMTLVideoView

UIKitView(
factory = {
val videoView = RTCMTLVideoView()
videoView.contentMode = if (forceFullDisplay)
UIViewContentMode.scaleAspectFill
else UIViewContentMode.scaleAspectFit

// Attach video track from stream
videoStream?.getVideoTracks()?.firstOrNull()?.let { track ->
track.add(videoView)
}
videoView
},
update = { view ->
// Update when stream changes
}
)

See Flutter's card_video_display.dart (757 lines) for reference implementation. Key features to implement:

  • RTCVideoRenderer lifecycle (init, attach stream, dispose)

  • Stream polling for async track availability

  • Layered rendering (video + placeholder + overlay)

  • Mirror transform for local camera

  • Object-fit control (cover vs contain)


Composable extension for rendering ControlButtonsAltComponent in Jetpack Compose


Composable extension for rendering ControlButtonsComponentTouch in Jetpack Compose




Composable extension for rendering FlexibleVideo in Jetpack Compose


Composable extension for rendering MainAspectComponent in Jetpack Compose


Composable extension for rendering MainContainerComponent in Jetpack Compose


fun MainGridComponent.renderCompose(renderTimer: Boolean = options.showTimer, timer: @Composable BoxScope.() -> Unit? = null, content: @Composable BoxScope.() -> Unit)

Composable extension for rendering MainGridComponent in Jetpack Compose


Composable extension for rendering MainScreenComponent in Jetpack Compose


fun MiniAudio.renderCompose(modifier: Modifier = Modifier)

Composable render function for MiniAudio.


fun MiniCard.renderCompose(modifier: Modifier = Modifier)

Composable render function for MiniCard.

This extension function renders the MiniCard using Jetpack Compose, utilizing the interface's helper methods for customization. Users can override getInitials(), shouldShowVideo(), and getContainerStyle() in custom implementations to customize behavior.


Composable extension for rendering OtherGridComponent in Jetpack Compose


Composable extension for rendering Pagination in Jetpack Compose

Renders pagination at TOP of grid with proper breakout room support. Shows icons for breakout rooms matching Flutter modern_pagination.


Composable extension for rendering SubAspectComponent in Jetpack Compose