Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
Prerrequisitos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un recurso de Communication Services implementado. Creación de un recurso de Communication Services.
- Token de acceso de usuario para habilitar el cliente de llamada. Obtenga un token de acceso de usuario.
- Opcional: Finalización de la guía de inicio rápido para empezar a trabajar con los componentes de la biblioteca de interfaz de usuario.
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 valor booleano true para proporcionar la experiencia de omitir la pantalla de configuración.
Se recomienda desarrollar la aplicación de tal manera que cuando un usuario intenta unirse a una llamada, ya se haya concedido permiso de micrófono para una experiencia de unión fluida.
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, ambos cameraOn y 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 beneficiarse del resultado de la API de configuración predeterminada de la cámara después de otorgar el permiso para la cámara.
Se recomienda controlar el permiso del 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 llamada se corta, la biblioteca de la 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.
Es posible que los valores siguientes error se envíen al controlador de errores:
microphonePermissionNotGrantednetworkConnectionNotAvailable
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 valor booleano true para proporcionar la experiencia de omitir la pantalla de configuración.
Se recomienda desarrollar la aplicación de tal manera que cuando un usuario intenta unirse a una llamada, ya se haya concedido permiso de micrófono para una experiencia de unión fluida.
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, ambos cameraOn y 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 beneficiarse del resultado de la API de configuración predeterminada de la cámara después de otorgar el permiso para la cámara.
Se recomienda controlar el permiso del 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 ocurre una interrupción de red durante una llamada o se corta una llamada, la biblioteca de interfaz de usuario se cierra y genera un error callEndFailed.
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 con errores:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Es posible que los valores siguientes error se envíen al controlador de errores:
microphonePermissionNotGrantednetworkConnectionNotAvailable