アプリケーションのセットアップ画面をスキップする
Azure Communication Services UI ライブラリには、セットアップ画面を通過せずに通話に参加するオプションが用意されています。 これにより、開発者は、ユーザーの操作なしで、ユーザーが通話に直接参加できる方法で通信アプリケーションを構築できます。 この機能では、ユーザーが通話に参加する前に、カメラとマイクの既定の状態を構成する機能 (オンまたはオフ) も提供されます。
この記事では、アプリケーションで機能を正しく設定する方法について説明します。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services リソースを作成します。
- 通話クライアントを有効にするためのユーザー アクセス トークン。 ユーザー アクセス トークンを取得します。
- 省略可能: UI ライブラリの複合の概要に関するクイック スタートの完了。
機能を設定する
詳細については、オープンソースの Android UI ライブラリとサンプル アプリケーション コードを参照してください。
セットアップ画面をスキップするオプション
CallCompositeLocalOptions
は、ブール値を使用してセットアップ画面をスキップする UI ライブラリの機能を設定するオプション ラッパーです。 既定では、セットアップ画面をスキップする機能は次のように false
設定されています。 セットアップ画面をスキップするエクスペリエンスをtrue
提供するには、ブール値を設定skipSetupScreen
する必要があります。
ユーザーが通話に参加しようとしたときに、スムーズな参加エクスペリエンスのためにマイクのアクセス許可が既に付与されるように、アプリケーションをビルドすることをお勧めします。
この機能を使用するには、ブール値skipSetupScreen
CallCompositeLocalOptions
を渡して挿入しますcallComposite.launch
。
import com.azure.android.communication.ui.calling.models.CallCompositeLocalOptions
val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
.setSkipSetupScreen(true)
callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
カメラとマイクの構成の既定のオプション
既定では、セットアップ画面には、通話に参加する前にカメラとマイクの設定を構成するオプションがユーザーに表示されます。 セットアップ画面をスキップして通話に参加するように設定した場合、ユーザーは通話中になるまでそのオプションを使用できません。
ブール値cameraOn
microphoneOn
は、ユーザーが通話に参加する前に、カメラとマイクをオンまたはオフにして渡すことができます。 ユーザーがそれぞれのアクセス許可を付与しても、カメラとマイクの既定の状態を制御する機能は影響を受けません。
既定では、両方 cameraOn
が microphoneOn
false
. この機能は、UI ライブラリの既定の呼び出し参加エクスペリエンスでも使用できます。 その場合、設定した構成に従って、セットアップ画面でカメラとマイクがオンまたはオフになります。
カメラとマイクの既定の状態を設定するには、ブール値cameraOn
を渡してmicrophoneOn
CallCompositeLocalOptions
それを挿入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
詳細については、オープンソースの iOS UI ライブラリとサンプル アプリケーション コードを参照してください。
セットアップ画面をスキップするオプション
LocalOptions
は、ブール値を使用してセットアップ画面をスキップする UI ライブラリの機能を設定するオプション ラッパーです。 既定では、セットアップ画面をスキップする機能は次のように false
設定されています。 セットアップ画面をスキップするエクスペリエンスをtrue
提供するには、ブール値を設定skipSetupScreen
する必要があります。
ユーザーが通話に参加しようとしたときに、スムーズな参加エクスペリエンスのためにマイクのアクセス許可が既に付与されるように、アプリケーションをビルドすることをお勧めします。
この機能を使用するには、ブール値skipSetupScreen
LocalOptions
を渡して挿入しますcallComposite.launch
。
let localOptions = LocalOptions(skipSetupScreen: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
カメラとマイクの構成の既定のオプション
既定では、セットアップ画面には、通話に参加する前にカメラとマイクの設定を構成するオプションがユーザーに表示されます。 セットアップ画面をスキップして通話に参加するように設定した場合、ユーザーは通話中になるまでそのオプションを使用できません。
ブール値cameraOn
microphoneOn
は、ユーザーが通話に参加する前に、カメラとマイクをオンまたはオフにして渡すことができます。 ユーザーがそれぞれのアクセス許可を付与しても、カメラとマイクの既定の状態を制御する機能は影響を受けません。
既定では、両方 cameraOn
が microphoneOn
false
. この機能は、UI ライブラリの既定の呼び出し参加エクスペリエンスでも使用できます。 その場合、設定した構成に従って、セットアップ画面でカメラとマイクがオンまたはオフになります。
カメラとマイクの既定の状態を設定するには、ブール値cameraOn
を渡してmicrophoneOn
LocalOptions
それを挿入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
スローします。 このエラーを回避するには、ユーザーが呼び出しに参加する前に、ネットワークの可用性をチェックするようにアプリケーションを構成することをお勧めします。
クロージャを実装してthe compositeイベントを処理できます。 次の例は、失敗した複合のエラー イベントを示しています。
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
次の error
の値がエラー ハンドラーに送信される場合があります。
microphonePermissionNotGranted
networkConnectionNotAvailable