다음을 통해 공유


애플리케이션에서 설정 화면 건너뛰기

Azure Communication Services UI 라이브러리는 설정 화면을 통과하지 않고 통화에 참가하는 옵션을 제공합니다. 이를 통해 개발자는 사용자가 사용자 상호 작용 없이 직접 통화에 참여할 수 있는 방식으로 통신 애플리케이션을 빌드할 수 있습니다. 또한 이 기능은 사용자가 통화에 참가하기 전에 카메라 및 마이크의 기본 상태(켜기 또는 끄기)를 구성하는 기능도 제공합니다.

이 문서에서는 애플리케이션에서 기능을 올바르게 설정하는 방법을 알아봅니다.

필수 조건

기능 설정

자세한 내용은 오픈 소스 Android UI 라이브러리샘플 애플리케이션 코드를 참조 하세요.

설정 화면을 건너뛰는 옵션

CallCompositeLocalOptions는 부울을 사용하여 설정 화면을 건너뛰도록 UI 라이브러리의 기능을 설정하는 옵션 래퍼입니다. 기본적으로 설정 화면을 건너뛰는 기능은 false로 설정됩니다. 설치 화면을 건너뛰는 환경을 제공하려면 skipSetupScreen 부울 값으로 true을 설정해야 합니다.

사용자가 통화에 참가하려고 할 때 원활한 참가 환경을 위해 마이크 권한이 이미 부여되는 방식으로 애플리케이션을 빌드하는 것이 좋습니다.

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

이 기능을 사용하려면 부울 값과 skipSetupScreenCallCompositeLocalOptions에 전달하여 callComposite.launch에 삽입합니다.

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

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

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

카메라 및 마이크 구성에 대한 기본 옵션

기본적으로 설정 화면에서는 사용자에게 통화에 참가하기 전에 카메라 및 마이크 설정을 구성하는 옵션을 제공합니다. 설정 화면 건너뛰고 통화에 참가하도록 설정하면 사용자는 통화 중일 때까지 해당 옵션이 없습니다.

부울 값과 cameraOnmicrophoneOn을 전달하여 사용자가 통화에 참가하기 전에 카메라와 마이크를 켜거나 끄도록 할 수 있습니다. 카메라와 마이크의 기본 상태를 제어하는 기능은 사용자가 각각에 대한 권한을 부여하는 경우 영향을 받지 않습니다.

기본적으로 cameraOnmicrophoneOn은 모두 false로 설정됩니다. UI 라이브러리의 기본 통화 참가 환경에서도 이 기능을 사용할 수 있습니다. 이 경우 설정한 구성에 따라 카메라와 마이크는 설정 화면에서 켜지거나 꺼집니다.

카메라와 마이크의 기본 상태를 설정하려면 부울 값과 cameraOnmicrophoneOnCallCompositeLocalOptions에 전달하여 callComposite.launch에 삽입합니다.

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

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

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)

권한 처리

마이크 및 카메라의 기본 구성 API를 사용하여 설정 화면을 건너뛰는 기능을 사용하는 권한을 사용자에게 부여하여 마이크 및 카메라 권한을 가지고 통화에 참가하도록 하는 것이 좋습니다. 사용자의 사용 권한을 처리하지 않으면 UI 라이브러리에서 사용자 권한을 대신 처리하려고 시도합니다.

사용자는 통화에 참가하려면 마이크 권한을 사용하도록 설정해야 합니다. 사용자가 마이크 권한을 거부한 후 통화에 참가하려고 하면 UI 라이브러리는 연결 단계에서 통화를 삭제하고 CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED 코드와 함께 오류가 발생합니다.

그러나 사용자는 카메라 권한을 거부하는 경우에도 통화에 참가할 수 있습니다. 카메라 권한이 거부되면 UI 라이브러리에서 카메라 기능을 사용하지 않도록 설정합니다. 따라서 카메라의 기본 구성 API는 호출 환경에 영향을 주지 않습니다. 사용자는 카메라 권한을 부여해야만 카메라에 대한 기본 구성 API의 효과를 누릴 수 있습니다.

마이크 권한을 처리하는 것이 좋습니다. 사용자가 기본적으로 카메라가 켜진 채로 통화에 참가하는 경우 카메라 권한도 처리하는 것이 좋습니다.

네트워크 오류

통화 중에 네트워크 중단이 발생하거나 통화가 삭제되면 UI 라이브러리가 닫히고 CallCompositeErrorCode.CALL_END_FAILED 코드와 함께 오류가 발생합니다.

사용자에게 네트워크 연결이 없고 설정 화면을 건너뛴 후 통화에 참가하려고 하면 UI 라이브러리가 호출 연결 단계에서 닫히고 CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE 코드와 함께 오류가 발생합니다. 이 오류를 방지하려면 사용자가 통화에 참가하기 전에 네트워크 가용성을 확인하도록 애플리케이션을 구성하는 것이 좋습니다.

오류 이벤트를 수신하려면 CallComposite를 사용하여 setOnErrorHandler를 호출합니다.

다음 error 값이 오류 처리기로 전송될 수 있습니다.

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

자세한 내용은 오픈 소스 iOS UI 라이브러리샘플 애플리케이션 코드를 참조하세요.

설정 화면을 건너뛰는 옵션

LocalOptions는 부울을 사용하여 설정 화면을 건너뛰도록 UI 라이브러리의 기능을 설정하는 옵션 래퍼입니다. 기본적으로 설정 화면을 건너뛰는 기능은 false로 설정됩니다. 설치 화면을 건너뛰는 환경을 제공하려면 skipSetupScreen 부울 값으로 true을 설정해야 합니다.

사용자가 통화에 참가하려고 할 때 원활한 참가 환경을 위해 마이크 권한이 이미 부여되는 방식으로 애플리케이션을 빌드하는 것이 좋습니다.

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

이 기능을 사용하려면 부울 값과 skipSetupScreenLocalOptions에 전달하여 callComposite.launch에 삽입합니다.

let localOptions = LocalOptions(skipSetupScreen: true)

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

카메라 및 마이크 구성에 대한 기본 옵션

기본적으로 설정 화면에서는 사용자에게 통화에 참가하기 전에 카메라 및 마이크 설정을 구성하는 옵션을 제공합니다. 설정 화면 건너뛰고 통화에 참가하도록 설정하면 사용자는 통화 중일 때까지 해당 옵션이 없습니다.

부울 값과 cameraOnmicrophoneOn을 전달하여 사용자가 통화에 참가하기 전에 카메라와 마이크를 켜거나 끄도록 할 수 있습니다. 카메라와 마이크의 기본 상태를 제어하는 기능은 사용자가 각각에 대한 권한을 부여하는 경우 영향을 받지 않습니다.

기본적으로 cameraOnmicrophoneOn은 모두 false로 설정됩니다. UI 라이브러리의 기본 통화 참가 환경에서도 이 기능을 사용할 수 있습니다. 이 경우 설정한 구성에 따라 카메라와 마이크는 설정 화면에서 켜지거나 꺼집니다.

카메라와 마이크의 기본 상태를 설정하려면 부울 값과 cameraOnmicrophoneOnLocalOptions에 전달하여 callComposite.launch에 삽입합니다.

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

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

권한 처리

마이크 및 카메라의 기본 구성 API를 사용하여 설정 화면을 건너뛰는 기능을 사용하는 권한을 사용자에게 부여하여 마이크 및 카메라 권한을 가지고 통화에 참가하도록 하는 것이 좋습니다. 사용자의 사용 권한을 처리하지 않으면 UI 라이브러리에서 사용자 권한을 대신 처리하려고 시도합니다.

사용자는 통화에 참가하려면 마이크 권한을 사용하도록 설정해야 합니다. 사용자가 마이크 권한을 거부한 후 통화에 참가하려고 하면 UI 라이브러리는 연결 단계에서 통화를 삭제하고 microphonePermissionNotGranted 오류가 발생합니다.

그러나 사용자는 카메라 권한을 거부하는 경우에도 통화에 참가할 수 있습니다. 카메라 권한이 거부되면 UI 라이브러리에서 카메라 기능을 사용하지 않도록 설정합니다. 따라서 카메라의 기본 구성 API는 호출 환경에 영향을 주지 않습니다. 사용자는 카메라 권한을 부여해야만 카메라에 대한 기본 구성 API의 효과를 누릴 수 있습니다.

마이크 권한을 처리하는 것이 좋습니다. 사용자가 기본적으로 카메라가 켜진 채로 통화에 참가하는 경우 카메라 권한도 처리하는 것이 좋습니다.

네트워크 오류

통화 중에 네트워크 중단이 발생하거나 통화가 삭제되면 UI 라이브러리가 닫히고 callEndFailed 오류가 발생합니다.

사용자에게 네트워크 연결이 없고 설정 화면을 건너뛴 후 통화에 참가하려고 하면 UI 라이브러리가 호출 연결 단계에서 닫히고 networkConnectionNotAvailable 오류가 발생합니다. 이 오류를 방지하려면 사용자가 통화에 참가하기 전에 네트워크 가용성을 확인하도록 애플리케이션을 구성하는 것이 좋습니다.

복합 이벤트에 대해 작동하도록 클로저를 구현할 수 있습니다. 다음 예제에서는 실패한 복합에 대한 오류 이벤트를 보여줍니다.

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

다음 error 값이 오류 처리기로 전송될 수 있습니다.

  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

다음 단계