Kotlin

Ajustando a interface do usuário do aplicativo de exemplo

O SDK do Android expõe os fluxos de vídeo (tanto os publicados quanto os assinados) como View objetos. Você pode associar essas visualizações a qualquer visualização composable em seu layout.

  1. Criar uma visualização composível

Em Android Studio:

  • Criar um novo arquivo VideoChatScreen.kt
  • Preencha o conteúdo do arquivo com:
@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. Agora declare publisherView e subscriberView como propriedades da classe MainActivity (logo após a declaração da session propriedade):
private var publisherView by mutableStateOf<View?>(null)
private var subscriberView by mutableStateOf<View?>(null)
  1. Por fim, no atual onCreate() método, inicialize o VideoChatScreen visualizar adicionando-o por meio do setContent() chamada de método:
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    enableEdgeToEdge()

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

    requestPermissions()
}