Héberger les vues SDK dans AndroidView
Vonage passe à la normale Points de vue. Créer un FrameLayout par emplacement d'abonné à l'intérieur AndroidView, l'exposer avec onSubscriberContainerReady(index, …)et joindre subscriber.view de votre code de session lorsque ce créneau est rempli.
L'exemple contient tout ce qui est nécessaire à la mise en œuvre de l'application Box → Column: LazyVerticalGrid (pondéré de manière à remplir l'espace au-dessus de la barre) + ControlsRow ci-dessous ; le éditeur est un deuxième AndroidView sur le Box, align(BottomEnd) pour l'image dans l'image. Chaque ligne de la grille utilise SubscriberCellqui utilise à nouveau AndroidView + FrameLayout pour la vidéo de ce créneau.
Tuiles à distance - deux colonnes, un élément composable par index de créneau (correspond à maxSubscribers et vos tableaux d'abonnés).
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) },
)
}
}
Avant-première locale - même modèle : FrameLayout de factory, transmis à 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)
}
)
Mise en page complète : SimpleMultipartyScreen.kt.
Multipartite simple
Apprenez à utiliser le SDK Android de Vonage pour un appel multipartite. L'application publie de l'audio/vidéo à partir d'un appareil et peut se connecter à plusieurs abonnés.