Kotlin

Ajustar la interfaz de usuario de la aplicación de ejemplo

El SDK de Android expone las secuencias de vídeo (tanto publicadas como suscritas) como View objetos. Puedes asociar estas vistas a cualquier vista componible de tu diseño.

  1. Crear una vista componible

En Android Studio:

  • Crear un nuevo archivo VideoChatScreen.kt
  • Rellene el contenido del archivo con:
@Composable
fun VideoChatScreen(
    publisherView: View?,
    subscriberView: View?
) {
    Box(modifier = Modifier.fillMaxSize()) {

        // Subscriber full-screen
        subscriberView?.let { view ->
            AndroidView(
                factory = { view },
                modifier = Modifier
                    .fillMaxSize()
            )
        }?: run {
            Text(
                "Connect another subscriber to this session to see his/hers video",
                modifier = Modifier
                .fillMaxSize()
                    .padding(vertical =
                    150.dp)
            )
        }


        publisherView?.let { view ->
            // Publisher picture-in-picture
            AndroidView(
                factory = { view },
                modifier = Modifier
                    .size(width = 90.dp, height = 120.dp)
                    .align(Alignment.BottomEnd)
                    .padding(16.dp)
                    .background(Color.LightGray)
            )
        }
    }
}
  1. Ahora declara publisherView y subscriberView como propiedades de la clase MainActivity (justo después de la declaración de la session propiedad):
private var publisherView by mutableStateOf<View?>(null)
private var subscriberView by mutableStateOf<View?>(null)
  1. Por último, en el onCreate() método, inicializar el VideoChatScreen añadiéndola a través de la vista setContent() Llamada a un método:
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    enableEdgeToEdge()

    setContent {
        VideoChatScreen(
            publisherView = publisherView,
            subscriberView = subscriberView
        )
    }

    requestPermissions()
}