Kotlin
Gestión de los cambios de 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):
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 viva la sesión en PiP
Visite no llame a session.onPause() mientras está en PiP, o la llamada puede pausarse cuando el usuario abandona la actividad a pantalla completa:
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:
override fun onStop() {
super.onStop()
subscriber?.let { subscriberViewContainer.removeView(it.view) }
publisher?.let { publisherViewContainer.removeView(it.view) }
}
Imagen en imagen
Aprende a agregar la función Picture in Picture a tu aplicación con Vonage Video SDK.
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
Contenedores para vídeos9
Iniciar Picture-in-Picture10
Gestión de los cambios de modo PiP11
Ejecutar la aplicación12
Conclusión