Compartir a través de


Omitir la pantalla de configuración en una aplicación

La biblioteca de interfaz de usuario de Azure Communication Services ofrece la opción de unirse a una llamada sin pasar por la pantalla de configuración. Permite a los desarrolladores crear una aplicación de comunicación de forma que permita a los usuarios unirse directamente a una llamada, sin interacción del usuario. La característica también proporciona la capacidad de configurar el estado predeterminado de la cámara y el micrófono (activado o desactivado) antes de que los usuarios se unan a una llamada.

En este artículo, aprenderá a configurar correctamente la característica en la aplicación.

Requisitos previos

Configuración de la característica

Para obtener más información, consulte la biblioteca de interfaz de usuario de Android de código abierto y el código de aplicación de ejemplo.

Opción para omitir la pantalla de configuración

CallCompositeLocalOptions es un contenedor de opciones que establece la funcionalidad de la biblioteca de interfaz de usuario para omitir la pantalla de configuración mediante un valor Boolean. De forma predeterminada, la capacidad de omitir la pantalla de configuración se establece en false. Debe establecer skipSetupScreen con un true valor booleano para proporcionar la experiencia de omitir la pantalla de configuración.

Se recomienda compilar la aplicación de tal manera que cuando un usuario intenta unirse a una llamada, ya se concede permiso de micrófono para una experiencia de combinación fluida.

Screenshot of joining call by skipping the setup screen for Android.

Para usar la característica, pase el valor booleano con skipSetupScreen a CallCompositeLocalOptions e inyectelo en callComposite.launch.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions

val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
    .setSkipSetupScreen(true)

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Opciones predeterminadas para la configuración de cámara y micrófono

De forma predeterminada, la pantalla de configuración ofrece a los usuarios una opción para configurar la cámara y el micrófono antes de unirse a una llamada. Al configurar la omisión de la pantalla de configuración para unirse a una llamada, los usuarios no tienen esa opción hasta que estén en la llamada.

Puede pasar un valor booleano con cameraOn y microphoneOn activar o desactivar la cámara y el micrófono antes de que los usuarios se unan a una llamada. La funcionalidad de controlar el estado predeterminado de la cámara y el micrófono no se ve afectado si un usuario concede el permiso para cada uno de ellos respectivamente.

De forma predeterminada, y cameraOn microphoneOn se establecen en false. Puede usar esta funcionalidad incluso con la experiencia predeterminada de unión a llamadas de la biblioteca de interfaz de usuario. En ese caso, la cámara y el micrófono se activan o desactivan en la pantalla de configuración según la configuración que establezca.

Para establecer el estado predeterminado de la cámara y el micrófono, pase el valor booleano con cameraOn y microphoneOn a CallCompositeLocalOptions e inyecte en callComposite.launch.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions

val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
    .setMicrophoneOn(true)
    .setCameraOn(true)

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

Control de permisos

Se recomienda permitir que los usuarios se unan a una llamada con permiso de micrófono y cámara para usar la característica de omitir la pantalla de configuración con las API de configuración predeterminadas para el micrófono y la cámara. Si no controla los permisos del usuario, la biblioteca de interfaz de usuario intenta controlarlos automáticamente.

Los usuarios deben habilitar el permiso de micrófono para unirse a una llamada. Si los usuarios intentan unirse a una llamada después de denegar el permiso de micrófono, la biblioteca de interfaz de usuario quita la llamada en la fase de conexión y produce un error con el código CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.

Sin embargo, los usuarios pueden unirse a una llamada incluso si deniegan el permiso de cámara. La biblioteca de interfaz de usuario deshabilita la funcionalidad de la cámara cuando se deniega el permiso de cámara. Por lo tanto, la API de configuración predeterminada para la cámara no afecta a la experiencia de llamada. Los usuarios pueden disfrutar del efecto de la API de configuración predeterminada para la cámara después de conceder el permiso de cámara.

Se recomienda controlar el permiso de micrófono. Si los usuarios se unen a la llamada con la cámara activada de forma predeterminada, se recomienda que también controle el permiso de la cámara.

Errores de red

Si se produce una interrupción de la red durante una llamada o se quita una llamada, la biblioteca de interfaz de usuario se cierra y produce un error con el código CallCompositeErrorCode.CALL_END_FAILED.

Si un usuario no tiene una conexión de red e intenta unirse a la llamada después de omitir la pantalla de configuración, la biblioteca de interfaz de usuario se cierra en la fase de conexión de llamada y produce un error con el código CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE. Para evitar este error, se recomienda configurar la aplicación para comprobar la disponibilidad de red antes de que los usuarios se unan a una llamada.

Para recibir eventos de error, llame a setOnErrorHandler con CallComposite.

Los valores siguientes error se pueden enviar al controlador de errores:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable
callComposite.addOnErrorEventHandler { callCompositeErrorEvent ->
    println(callCompositeErrorEvent.errorCode)
}

Para obtener más información, consulte la biblioteca de interfaz de usuario de iOS de código abierto y el código de aplicación de ejemplo.

Opción para omitir la pantalla de configuración

LocalOptions es un contenedor de opciones que establece la funcionalidad de la biblioteca de interfaz de usuario para omitir la pantalla de configuración mediante un valor Boolean. De forma predeterminada, la capacidad de omitir la pantalla de configuración se establece en false. Debe establecer skipSetupScreen con un true valor booleano para proporcionar la experiencia de omitir la pantalla de configuración.

Se recomienda compilar la aplicación de tal manera que cuando un usuario intenta unirse a una llamada, ya se concede permiso de micrófono para una experiencia de combinación fluida.

Screenshot of joining call by skipping the setup screen for iOS.

Para usar la característica, pase el valor booleano con skipSetupScreen a LocalOptions e inyectelo en callComposite.launch.

let localOptions = LocalOptions(skipSetupScreen: true)

callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)

Opciones predeterminadas para la configuración de cámara y micrófono

De forma predeterminada, la pantalla de configuración ofrece a los usuarios una opción para configurar la cámara y el micrófono antes de unirse a una llamada. Al configurar la omisión de la pantalla de configuración para unirse a una llamada, los usuarios no tienen esa opción hasta que estén en la llamada.

Puede pasar un valor booleano con cameraOn y microphoneOn activar o desactivar la cámara y el micrófono antes de que los usuarios se unan a una llamada. La funcionalidad de controlar el estado predeterminado de la cámara y el micrófono no se ve afectado si un usuario concede el permiso para cada uno de ellos respectivamente.

De forma predeterminada, y cameraOn microphoneOn se establecen en false. Puede usar esta funcionalidad incluso con la experiencia predeterminada de unión a llamadas de la biblioteca de interfaz de usuario. En ese caso, la cámara y el micrófono se activan o desactivan en la pantalla de configuración según la configuración que establezca.

Para establecer el estado predeterminado de la cámara y el micrófono, pase el valor booleano con cameraOn y microphoneOn a LocalOptions e inyecte en callComposite.launch.

let localOptions = LocalOptions(cameraOn: true, microphoneOn: true)

callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)

Control de permisos

Se recomienda permitir que los usuarios se unan a una llamada con permiso de micrófono y cámara para usar la característica de omitir la pantalla de configuración con las API de configuración predeterminadas para el micrófono y la cámara. Si no controla los permisos del usuario, la biblioteca de interfaz de usuario intenta controlarlos automáticamente.

Los usuarios deben habilitar el permiso de micrófono para unirse a una llamada. Si los usuarios intentan unirse a una llamada después de denegar el permiso de micrófono, la biblioteca de interfaz de usuario quita la llamada en la fase de conexión y produce un microphonePermissionNotGranted error.

Sin embargo, los usuarios pueden unirse a una llamada incluso si deniegan el permiso de cámara. La biblioteca de interfaz de usuario deshabilita la funcionalidad de la cámara cuando se deniega el permiso de cámara. Por lo tanto, la API de configuración predeterminada para la cámara no afecta a la experiencia de llamada. Los usuarios pueden disfrutar del efecto de la API de configuración predeterminada para la cámara después de conceder el permiso de cámara.

Se recomienda controlar el permiso de micrófono. Si los usuarios se unen a la llamada con la cámara activada de forma predeterminada, se recomienda que también controle el permiso de la cámara.

Errores de red

Si se produce una interrupción de la red durante una llamada o una caída de llamada, la biblioteca de interfaz de usuario se cierra y produce un callEndFailed error.

Si un usuario no tiene una conexión de red e intenta unirse a la llamada después de omitir la pantalla de configuración, la biblioteca de interfaz de usuario se cierra en la fase de conexión de llamada y produce un networkConnectionNotAvailable error. Para evitar este error, se recomienda configurar la aplicación para comprobar la disponibilidad de red antes de que los usuarios se unan a una llamada.

Puede implementar cierres para que actúen sobre los eventos. En el ejemplo siguiente se muestra un evento de error para una composición fallida:

callComposite?.events.onError = { error in
    print("CallComposite failed with error:\(error)")
}

Los valores siguientes error se pueden enviar al controlador de errores:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

Pasos siguientes