你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
跳过设置屏幕
此功能使选项无需通过设置屏幕即可加入呼叫。 它使开发人员能够使用 UI 库生成其通信应用程序,让用户无需进行任何用户交互即可直接加入呼叫。 此功能还提供配置相机和麦克风默认状态的功能。 我们提供了用于打开或关闭相机和麦克风的 API,以便开发人员可以在加入呼叫之前配置相机和麦克风的默认状态。
了解如何在应用程序中正确设置跳过设置屏幕功能。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 已部署的通信服务资源。 创建通信服务资源。
- 用于启用呼叫客户端的
User Access Token
。 详细了解如何获取User Access Token
- 可选:完成快速入门以开始使用 UI 库复合项
可在此处找到适用于 Android 的 Azure 通信 UI 开源库和示例应用程序代码
跳过设置屏幕选项
CallCompositeLocalOptions
是一个选项包装器,用于设置 UI 库的功能,以使用布尔值跳过设置屏幕。 默认情况下,跳过设置屏幕功能设置为 false。 必须使用真正的布尔值进行设置 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
打开相机和麦克风 ON 或 OFF。 这些属性使开发人员能够在加入呼叫之前控制相机和麦克风控件。 如果用户分别授予每个相机和麦克风状态控制功能的权限,则不会影响默认相机和麦克风状态控制功能。
默认情况下,这两者都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 的 Azure 通信 UI 开源库和示例应用程序代码
跳过设置屏幕选项
LocalOptions
是一个选项包装器,用于设置 UI 库的功能,以使用布尔值跳过设置屏幕。 默认情况下,跳过设置屏幕功能设置为 false。 必须使用真正的布尔值进行设置 skipSetupScreen
,才能获取跳过设置屏幕体验。
我们建议你生成应用程序,这样当用户尝试加入呼叫时,已授予麦克风权限以获取流畅的呼叫加入体验。
若要使用该功能,请将布尔值传递给skipSetupScreen
LocalOptions
该布尔值并将其注入到 callComposite.launch
。
let localOptions = LocalOptions(skipSetupScreen: true)
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
默认相机和麦克风配置选项
默认情况下,设置屏幕为用户提供在加入呼叫之前配置相机和麦克风设置的选项。 尝试跳过设置屏幕以加入呼叫时,除非用户已加入呼叫,否则用户没有该选项。 我们提供了更多选项来设置相机和麦克风的默认行为,以便开发人员能够更好地控制相机和麦克风的默认状态。 可以传递一个布尔值, cameraOn
并 microphoneOn
打开相机和麦克风 ON 或 OFF。 这些属性使开发人员能够在加入呼叫之前控制相机和麦克风控件。 如果用户分别授予每个相机和麦克风状态控制功能的权限,则不会影响默认相机和麦克风状态控制功能。
默认情况下,这两者都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
错误。
建议通过检查网络可用性加入呼叫,以避免此类错误。
可以实现闭包,以处理复合事件。 以下示例显示了失败的复合组件的错误事件:
可将以下 error
值发送到错误处理程序:
microphonePermissionNotGranted
networkConnectionNotAvailable
callComposite?.events.onError = { error in
print("CallComposite failed with error:\(error)")
}