Partilhar via


Ignorar a tela de configuração em um aplicativo

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 configuração. Ele permite que os desenvolvedores criem um aplicativo de comunicação de forma a permitir que os usuários participem de uma chamada diretamente, sem qualquer interação do usuário. O recurso também fornece a capacidade de configurar o estado padrão da câmera e do microfone (ligado ou desligado) antes que os usuários participem de uma chamada.

Neste artigo, você aprenderá como configurar o recurso corretamente em seu aplicativo.

Pré-requisitos

Configurar o recurso

Para obter mais informações, consulte a biblioteca de interface do usuário do Android de código aberto e o código do aplicativo de exemplo.

Opção para ignorar a tela de configuração

CallCompositeLocalOptions é um wrapper de opções que define a capacidade da Biblioteca da Interface do Usuário para ignorar a tela de configuração usando um Boolean. Por padrão, a capacidade de ignorar a tela de configuração é definida como false. Você tem que definir skipSetupScreen com um true valor booleano para fornecer a experiência de pular a tela de configuração.

Recomendamos que você crie seu aplicativo de tal forma que, quando um usuário tenta participar de uma chamada, a permissão de microfone já é concedida para uma experiência de ingresso suave.

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

Para usar o recurso, passe o valor booleano com skipSetupScreen to CallCompositeLocalOptions e injete-o no 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 configuração oferece aos usuários a opção de definir as configurações de câmera e microfone antes de participar de uma chamada. Quando você configura pular a tela de configuração para participar de uma chamada, os usuários não têm essa opção até que estejam na chamada.

Você pode passar um valor booleano com cameraOn e para ligar ou desligar a câmera e microphoneOn o microfone antes que os usuários participem de 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 estão definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamadas da Biblioteca da Interface do Usuário. Nesse caso, a câmera e o microfone são ligados ou desligados na tela de configuração de acordo com a configuração que você definiu.

Para definir o estado padrão da câmera e do microfone, passe o valor booleano com cameraOn e para CallCompositeLocalOptions e microphoneOn injete-o no 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

Recomendamos que você permita que os usuários participem de uma chamada com permissão de microfone e câmera sendo concedida para usar o recurso de ignorar a tela de configuração com APIs de configuração padrão para o microfone e a câmera. Se você não manipular as permissões do usuário, a Biblioteca da Interface do Usuário tentará manipulá-las para você.

Os usuários devem habilitar a permissão de microfone para participar de uma chamada. Se os usuários tentarem participar de uma chamada depois de negar a permissão do microfone, a Biblioteca da Interface do Usuário descartará a chamada no estágio de conexão e lançará um erro com o código CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED.

No entanto, os usuários podem participar de uma chamada mesmo se negarem a permissão da câmera. A biblioteca da interface do usuário desativa 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 desfrutar do efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.

Recomendamos que você manipule a permissão do microfone. Se os usuários participarem da chamada com a câmera ligada por padrão, recomendamos que você também manipule a permissão da câmera.

Erros de rede

Se ocorrer uma interrupção de rede durante uma chamada ou se uma chamada cair, a Biblioteca da Interface do Usuário será fechada e lançará 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 da Interface do Usuário será fechada no estágio de conexão de chamada e lançará 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 participem de uma chamada.

Para receber eventos de erro, ligue setOnErrorHandler para CallComposite.

Os seguintes error valores podem ser enviados para o manipulador de erros:

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

Para obter mais informações, consulte a biblioteca de interface do usuário do iOS de código aberto e o código de aplicativo de exemplo.

Opção para ignorar a tela de configuração

LocalOptions é um wrapper de opções que define a capacidade da Biblioteca da Interface do Usuário para ignorar a tela de configuração usando um Boolean. Por padrão, a capacidade de ignorar a tela de configuração é definida como false. Você tem que definir skipSetupScreen com um true valor booleano para fornecer a experiência de pular a tela de configuração.

Recomendamos que você crie seu aplicativo de tal forma que, quando um usuário tenta participar de uma chamada, a permissão de microfone já é concedida para uma experiência de ingresso suave.

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

Para usar o recurso, passe o valor booleano com skipSetupScreen to LocalOptions e injete-o no 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 configuração oferece aos usuários a opção de definir as configurações de câmera e microfone antes de participar de uma chamada. Quando você configura pular a tela de configuração para participar de uma chamada, os usuários não têm essa opção até que estejam na chamada.

Você pode passar um valor booleano com cameraOn e para ligar ou desligar a câmera e microphoneOn o microfone antes que os usuários participem de 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 estão definidos como false. Você pode usar essa funcionalidade mesmo com a experiência padrão de ingresso de chamadas da Biblioteca da Interface do Usuário. Nesse caso, a câmera e o microfone são ligados ou desligados na tela de configuração de acordo com a configuração que você definiu.

Para definir o estado padrão da câmera e do microfone, passe o valor booleano com cameraOn e para LocalOptions e microphoneOn injete-o no callComposite.launch.

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

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

Tratamento de permissões

Recomendamos que você permita que os usuários participem de uma chamada com permissão de microfone e câmera sendo concedida para usar o recurso de ignorar a tela de configuração com APIs de configuração padrão para o microfone e a câmera. Se você não manipular as permissões do usuário, a Biblioteca da Interface do Usuário tentará manipulá-las para você.

Os usuários devem habilitar a permissão de microfone para participar de uma chamada. Se os usuários tentarem participar de uma chamada depois de negar a permissão do microfone, a Biblioteca da Interface do Usuário descartará a chamada no estágio de conexão e lançará um microphonePermissionNotGranted erro.

No entanto, os usuários podem participar de uma chamada mesmo se negarem a permissão da câmera. A biblioteca da interface do usuário desativa 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 desfrutar do efeito da API de configuração padrão para a câmera depois de conceder a permissão da câmera.

Recomendamos que você manipule a permissão do microfone. Se os usuários participarem da chamada com a câmera ligada por padrão, recomendamos que você também manipule a permissão da câmera.

Erros de rede

Se ocorrer uma interrupção de rede durante uma chamada ou se uma chamada cair, a Biblioteca da Interface do Usuário será fechada e lançará um callEndFailed erro.

Se um usuário não tiver uma conexão de rede e tentar participar da chamada depois de ignorar a tela de configuração, a Biblioteca da Interface do Usuário será fechada no estágio de conexão de chamada e lançará um networkConnectionNotAvailable erro. Para evitar esse erro, recomendamos que você configure seu aplicativo para verificar a disponibilidade da rede antes que os usuários participem de uma chamada.

Você pode implementar fechamentos para agir em eventos compostos. O exemplo a seguir mostra um evento de erro para um composto 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:

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

Próximos passos