Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A Biblioteca de Interface do Usuário dos Serviços de Comunicação do Azure oferece a opção de ingressar em uma chamada sem passar pela tela de instalação. Ele capacita os desenvolvedores a criar um aplicativo de comunicação de uma maneira que permita que os usuários ingressem diretamente em uma chamada, sem nenhuma interação do usuário. O recurso também fornece a capacidade de configurar o estado padrão da câmera e do microfone (ativado ou desativado) antes que os usuários ingressem em uma chamada.
Neste artigo, você aprenderá a configurar o recurso corretamente em seu aplicativo.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso dos Serviços de Comunicação implantado. Crie um recurso dos Serviços de Comunicação.
- Um token de acesso do usuário para habilitar o cliente de chamada. Obtenha um token de acesso do usuário.
- Opcional: Conclusão do início rápido para a introdução aos compostos da Biblioteca de interface do usuário.
Configurar o recurso
Para obter mais informações, consulte a biblioteca de interface do usuário do Android de software livre e o código do aplicativo de exemplo.
Opção para ignorar a tela de instalação
CallCompositeLocalOptions é um wrapper de opções que define a capacidade da Biblioteca de Interface do Usuário para ignorar a tela de configuração usando um booliano. Por padrão, a capacidade de ignorar a tela de instalação é definida como false. Você precisa definir skipSetupScreen com um valor booliano true para fornecer a experiência de ignorar a tela de instalação.
Recomendamos que você crie seu aplicativo de forma que, quando um usuário tenta entrar em uma chamada, a permissão de microfone já esteja concedida para uma experiência fluida.
Para usar o recurso, passe o valor booliano com skipSetupScreen para CallCompositeLocalOptions e injete-o em callComposite.launch.
import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setSkipSetupScreen(true)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Opções padrão para configuração de câmera e microfone
Por padrão, a tela de instalação oferece aos usuários uma opção para definir as configurações de câmera e microfone antes de ingressar em uma chamada. Quando você configura ignorar a tela de instalação para ingressar em uma chamada, os usuários não têm essa opção até que estejam na chamada.
Você pode passar um valor booliano com cameraOn e microphoneOn ativar ou desativar a câmera e o microfone antes que os usuários ingressem em uma chamada. A funcionalidade de controlar o estado padrão da câmera e do microfone não será afetada se um usuário conceder a permissão para cada um deles, respectivamente.
Por padrão, ambos cameraOn e microphoneOn são definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de integração de chamadas da Biblioteca de Interface de Usuário (UI). Nesse caso, a câmera e o microfone estão ativados ou desativados na tela de instalação de acordo com a configuração definida.
Para definir o estado padrão da câmera e do microfone, passe o valor booliano com cameraOn e microphoneOn para CallCompositeLocalOptions e injete-o em callComposite.launch.
import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setMicrophoneOn(true)
.setCameraOn(true)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Tratamento de permissões
É recomendável permitir que os usuários ingressem em uma chamada desde que a permissão do microfone e da câmera tenha sido concedida, para usar o recurso de ignorar a tela de instalação com as APIs de configuração padrão do microfone e da câmera. Se você não gerenciar as permissões do usuário, a biblioteca de UI tentará fazê-lo por você.
Os usuários devem habilitar a permissão de microfone para ingressar em uma chamada. Se os usuários tentarem ingressar em uma chamada depois de negar a permissão do microfone, a Biblioteca de Interface do Usuário removerá a chamada no estágio de conexão e gerará um erro com o código CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.
No entanto, os usuários podem ingressar em uma chamada mesmo se negarem a permissão da câmera. A Biblioteca de Interface do Usuário desabilita a funcionalidade da câmera quando a permissão da câmera é negada. Portanto, a API de configuração padrão para a câmera não afeta a experiência de chamada. Os usuários podem aproveitar o efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.
Recomendamos que você gerencie a permissão do microfone. Se os usuários ingressarem na chamada com a câmera ativada por padrão, recomendamos que você também manipule a permissão da câmera.
Erros de rede
Se uma interrupção de rede ocorrer durante uma chamada ou uma chamada for descartada, a Biblioteca de Interface do Usuário fechará e gerará um erro com o código CallCompositeErrorCode.CALL_END_FAILED.
Se um usuário não tiver uma conexão de rede e tentar ingressar na chamada depois de ignorar a tela de configuração, a Biblioteca de Interface do Usuário será fechada na fase de conexão da chamada e gerará um erro com o código CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE. Para evitar esse erro, recomendamos que você configure seu aplicativo para verificar a disponibilidade da rede antes que os usuários ingressem em uma chamada.
Para receber eventos de erro, chame setOnErrorHandler com CallComposite.
Os seguintes error valores podem ser enviados para o manipulador de erros:
microphonePermissionNotGrantednetworkConnectionNotAvailable
Para obter mais informações, consulte a biblioteca de interface do usuário do iOS de software livre e o código de aplicativo de exemplo.
Opção para ignorar a tela de instalação
LocalOptions é um wrapper de opções que define a capacidade da Biblioteca de Interface do Usuário para ignorar a tela de configuração usando um booliano. Por padrão, a capacidade de ignorar a tela de instalação é definida como false. Você precisa definir skipSetupScreen com um valor booliano true para fornecer a experiência de ignorar a tela de instalação.
Recomendamos que você crie seu aplicativo de forma que, quando um usuário tenta entrar em uma chamada, a permissão de microfone já esteja concedida para uma experiência fluida.
Para usar o recurso, passe o valor booliano com skipSetupScreen para LocalOptions e injete-o em callComposite.launch.
let localOptions = LocalOptions(skipSetupScreen: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Opções padrão para configuração de câmera e microfone
Por padrão, a tela de instalação oferece aos usuários uma opção para definir as configurações de câmera e microfone antes de ingressar em uma chamada. Quando você configura ignorar a tela de instalação para ingressar em uma chamada, os usuários não têm essa opção até que estejam na chamada.
Você pode passar um valor booliano com cameraOn e microphoneOn ativar ou desativar a câmera e o microfone antes que os usuários ingressem em uma chamada. A funcionalidade de controlar o estado padrão da câmera e do microfone não será afetada se um usuário conceder a permissão para cada um deles, respectivamente.
Por padrão, ambos cameraOn e microphoneOn são definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de integração de chamadas da Biblioteca de Interface de Usuário (UI). Nesse caso, a câmera e o microfone estão ativados ou desativados na tela de instalação de acordo com a configuração definida.
Para definir o estado padrão da câmera e do microfone, passe o valor booliano com cameraOn e microphoneOn para LocalOptions e injete-o em callComposite.launch.
let localOptions = LocalOptions(cameraOn: true, microphoneOn: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Tratamento de permissões
É recomendável permitir que os usuários ingressem em uma chamada desde que a permissão do microfone e da câmera tenha sido concedida, para usar o recurso de ignorar a tela de instalação com as APIs de configuração padrão do microfone e da câmera. Se você não gerenciar as permissões do usuário, a biblioteca de UI tentará fazê-lo por você.
Os usuários devem habilitar a permissão de microfone para ingressar em uma chamada. Se os usuários tentarem ingressar em uma chamada depois de negar a permissão do microfone, a Biblioteca de UI cancelará a chamada no estágio de conexão e lançará um erro microphonePermissionNotGranted.
No entanto, os usuários podem ingressar em uma chamada mesmo se negarem a permissão da câmera. A Biblioteca de Interface do Usuário desabilita a funcionalidade da câmera quando a permissão da câmera é negada. Portanto, a API de configuração padrão para a câmera não afeta a experiência de chamada. Os usuários podem aproveitar o efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.
Recomendamos que você gerencie a permissão do microfone. Se os usuários ingressarem na chamada com a câmera ativada por padrão, recomendamos que você também manipule a permissão da câmera.
Erros de rede
Se uma interrupção de rede ocorrer durante uma chamada ou uma chamada for descartada, a Biblioteca de Interface do Usuário fechará e gerará um callEndFailed erro.
Se um usuário não tiver conexão de rede e tentar entrar na chamada após ignorar a tela de configuração, a Biblioteca de Interface do Usuário será encerrada na etapa de conexão da chamada e exibirá um erro networkConnectionNotAvailable. Para evitar esse erro, recomendamos que você configure seu aplicativo para verificar a disponibilidade da rede antes que os usuários ingressem em uma chamada.
Você pode implementar os fechamentos para agir sobre eventos compostos. O exemplo a seguir mostra um evento de erro para uma composição com falha:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
Os seguintes error valores podem ser enviados para o manipulador de erros:
microphonePermissionNotGrantednetworkConnectionNotAvailable