Vistas del SDK del host en AndroidView
Vonage convierte en normal Vistas. Crear uno FrameLayout por plaza de abonado dentro AndroidViewexpóngalo con onSubscriberContainerReady(index, …)y adjuntar subscriber.view de su código de sesión cuando se llene esa ranura.
La muestra lo envuelve todo en Box → Column: LazyVerticalGrid (ponderado para que llene el espacio por encima de la barra) + ControlsRow abajo; el editor es un segundo AndroidView en el Box, align(BottomEnd) para la función «imagen en imagen». Cada fila de la cuadrícula utiliza SubscriberCellque también utiliza AndroidView + FrameLayout para ver el vídeo de ese espacio.
Mosaicos remotos — dos columnas, un elemento combinable por índice de ranura (coincide con maxSubscribers y sus matrices de abonados).
LazyVerticalGrid(
modifier = Modifier.weight(1f),
columns = GridCells.Fixed(2),
verticalArrangement = Arrangement.spacedBy(12.dp),
horizontalArrangement = Arrangement.spacedBy(12.dp),
userScrollEnabled = false,
) {
items(items = (0 until maxSubscribers).toList(), key = { it }) { index ->
SubscriberCell(
modifier = Modifier
.fillMaxWidth()
.aspectRatio(1f),
visible = subscriberVisible.getOrNull(index) == true,
audioEnabled = subscriberAudioEnabled.getOrNull(index) != false,
onAudioChanged = { onSubscriberAudioChanged(index, it) },
onContainerReady = { onSubscriberContainerReady(index, it) },
)
}
}
Avance local - mismo patrón: FrameLayout de factory, pasado a onPublisherContainerReady.
AndroidView(
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(12.dp)
.size(width = 150.dp, height = 200.dp)
.background(Color.Black),
factory = {
FrameLayout(it).also(onPublisherContainerReady)
}
)
Disposición completa: SimpleMultipartyScreen.kt.
Multipartito simple
Aprende a utilizar el SDK de Vonage para Android para realizar una llamada con varios participantes. La aplicación transmite audio y vídeo desde un dispositivo y puede conectarse con varios usuarios.