Kotlin
Gestión de los cambios en el modo PiP
1. Actualizar la interfaz de usuario cuando cambie el modo PiP
Anular onPictureInPictureModeChanged para rastrear el estado PiP y ocultar la vista previa local en la ventana flotante (el vídeo de abonado permanece):
Copia
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)
}
}
}
Exponga isInPipMode para componer (por ejemplo, con mutableStateOf) para que el botón PiP se oculte automáticamente.
2. Mantener la sesión activa en PiP
Haz no llamada session.onPause() mientras se está en modo PiP, o la llamada podría pausarse cuando el usuario salga de la actividad a pantalla completa:
Copia
override fun onPause() {
super.onPause()
if (!isInPictureInPictureMode) {
session?.onPause()
}
}
override fun onResume() {
super.onResume()
if (!isInPictureInPictureMode) {
session?.onResume()
}
}
3. Limpiar vistas en onStop
Elimine las vistas de editor y abonado cuando cese la actividad:
Copia
override fun onStop() {
super.onStop()
subscriber?.let { subscriberViewContainer.removeView(it.view) }
publisher?.let { publisherViewContainer.removeView(it.view) }
}
Imagen en imagen
Descubre cómo añadir la función «Imagen en imagen» a tu aplicación utilizando el SDK de vídeo de Vonage.
Disponible en:
Pasos
1
Introducción2
Primeros pasos3
Crear un nuevo proyecto4
Añadir el SDK de Android5
Configuración de la autenticación6
Solicitud de permisos7
Activar Picture-in-Picture en tu actividad8
Proporcionar contenedores para las visualizaciones de vídeo9
Iniciar Picture-in-Picture10
Gestión de los cambios en el modo PiP11
Ejecutar la aplicación12
Conclusión