Kotlin
Gerenciamento de alterações no modo PiP
1. Atualizar a interface do usuário quando o modo PiP mudar
Substituir onPictureInPictureModeChanged para monitorar o estado do PiP e ocultar a pré-visualização local na janela flutuante (o vídeo do assinante permanece):
Copiar
override fun onPictureInPictureModeChanged(
isInPictureInPictureMode: Boolean,
newConfig: Configuration,
) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
isInPipMode = isInPictureInPictureMode
if (isInPictureInPictureMode) {
publisherViewContainer.visibility = View.GONE
publisher?.view?.visibility = View.GONE
} else {
publisherViewContainer.visibility = View.VISIBLE
publisher?.view?.visibility = View.VISIBLE
if (publisher?.view is GLSurfaceView) {
(publisher?.view as GLSurfaceView).setZOrderOnTop(true)
}
}
}
Expor isInPipMode para compor (por exemplo, com mutableStateOf) para que o botão PiP seja ocultado automaticamente.
2. Manter a sessão ativa no PiP
Faça não chamada session.onPause() enquanto estiver no modo PiP, ou a chamada poderá ser pausada quando o usuário sair da atividade em tela cheia:
Copiar
override fun onPause() {
super.onPause()
if (!isInPictureInPictureMode) {
session?.onPause()
}
}
override fun onResume() {
super.onResume()
if (!isInPictureInPictureMode) {
session?.onResume()
}
}
3. Limpar as visualizações no onStop
Remover as visualizações do editor e do assinante quando a atividade for encerrada:
Copiar
override fun onStop() {
super.onStop()
subscriber?.let { subscriberViewContainer.removeView(it.view) }
publisher?.let { publisherViewContainer.removeView(it.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