Kotlin
Fornecer contêineres para visualizações de vídeo
O SDK da Vonage retorna View objetos para o editor e o assinante. O exemplo os hospeda em FrameLayout contêineres criados a partir do Compose por meio de AndroidView:
Copiar
@Composable
private fun VideoContainers(
onContainersReady: (subscriber: FrameLayout, publisher: FrameLayout) -> Unit,
) {
AndroidView(
factory = { ctx ->
val root = FrameLayout(ctx)
val subscriberFrame = FrameLayout(ctx) // full screen
val publisherFrame = FrameLayout(ctx) // small overlay, bottom-end
root.addView(subscriberFrame)
root.addView(publisherFrame)
onContainersReady(subscriberFrame, publisherFrame)
root
},
modifier = Modifier.fillMaxSize(),
)
}
Passe os contêineres para sua atividade, para que ela possa adicionar as visualizações do editor e do assinante quando a sessão se conectar:
Copiar
VideoCallScreen(
isInPipMode = isInPipMode,
onContainersReady = { subscriberFrame, publisherFrame ->
subscriberViewContainer = subscriberFrame
publisherViewContainer = publisherFrame
containersReady = true
tryStartSession()
},
onEnterPictureInPicture = ::enterPictureInPicture,
)
Anexar a visualização quando estiver pronto
Em onConnected, publique e anexe a visualização do editor:
Copiar
override fun onConnected(session: Session) {
if (publisher == null) {
publisher = Publisher.Builder(applicationContext).build()
session.publish(publisher)
publisherViewContainer.addView(publisher?.view)
if (publisher?.view is GLSurfaceView) {
(publisher?.view as GLSurfaceView).setZOrderOnTop(true)
}
}
}
Inscreva-se quando um stream remoto for disponibilizado:
Copiar
override fun onStreamReceived(session: Session, stream: Stream) {
if (subscriber == null) {
subscriber = Subscriber.Builder(applicationContext, stream).build()
session.subscribe(subscriber)
subscriberViewContainer.addView(subscriber?.view)
}
}
Imagem na imagem
Saiba como adicionar a funcionalidade Picture in Picture ao seu aplicativo usando o Vonage Video SDK.
Disponível em:
Etapas
1
Introdução2
Introdução3
Criando um novo projeto4
Adicionando o SDK do Android5
Configurando a autenticação6
Solicitação de permissões7
Ative o recurso “Picture-in-Picture” na sua atividade8
Fornecer contêineres para visualizações de vídeo9
Iniciando o Picture-in-Picture10
Gerenciamento de alterações no modo PiP11
Executando o aplicativo12
Conclusão