略過應用程式中的設定畫面
Azure 通訊服務 UI 程式庫提供不需通過設定畫面即可加入通話的選項。 可讓開發人員以讓使用者直接加入通話的方式建置通訊應用程式,而不需要任何使用者互動。 此功能也提供在使用者加入通話之前,設定相機和麥克風預設狀態 (開啟或關閉) 的功能。
在本文中,您會了解如何在應用程式中正確設定功能。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 已部署通訊服務資源。 建立通訊服務資源。
- 用來啟用通話用戶端的使用者存取權杖。 取得使用者存取權杖。
- 選擇性:完成開始使用 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
錯誤。 若要避免此錯誤,建議您先將應用程式設定為在使用者加入通話之前檢查網路可用性。
您可以實作關閉以針對複合事件採取行動。 以下範例顯示失敗複合的錯誤事件:
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}
下列 error
值可能會傳送至錯誤處理常式:
microphonePermissionNotGranted
networkConnectionNotAvailable