你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在应用程序中启用画中画功能
当用户在通话时,全屏 UI 可能会阻止用户在应用中进行多任务处理。 有两种方法让用户能够在应用中进行多任务处理:
- 使用户能够选择“后退”按钮并返回到上一个屏幕。 用户仍在通话时,不会显示通话 UI。
- 启用画中画功能。
本文介绍如何启用 Azure 通信服务 UI 库中的画中画功能。 画中画功能是系统提供的,受设备上的功能支持的影响(包括 CPU 负载、RAM 可用性和电池状态)。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 已部署的通信服务资源。 创建通信服务资源。
- 用于启用通话客户端的用户访问令牌。 获取用户访问令牌。
- 可选:完成快速入门以开始使用 UI 库复合项。
启用功能
有关详细信息,请参阅开源 Android UI 库 和示例应用程序代码。
画中画设置
若要启用多任务处理和画中画,请使用 CallCompositeBuilder.multitasking
为 CallCompositeMultitaskingOptions
设置 enableMultitasking
和 enableSystemPictureInPictureWhenMultitasking
构造函数参数。
val callComposite: CallComposite =
CallCompositeBuilder()
.multitasking(CallCompositeMultitaskingOptions(true, true))
.build()
enableMultitasking
设置为 true
时,会显示“后退”按钮。
当用户点击“后退”按钮时,“通话 UI”会隐藏;如果已配置,则会显示“画中画”视图。
当为 CallComposite
启用多任务处理时,通话活动将在专用任务中启动。 在任务历史记录中,用户会看到两个屏幕:一个显示应用的活动,另一个显示通信服务通话活动。
在配置了显示画中画的情况下,若要以编程方式进入多任务处理,请调用 sendToBackground
方法。
若要以编程方式将用户带回到通话活动,请使用 bringToForeground
函数:
有关详细信息,请参阅开源 iOS UI 库 和示例应用程序代码。
先决条件
一台实体 iOS 设备,用于运行应用。 iOS 模拟器不支持画中画功能。
画中画设置
若要启用多任务处理和画中画,请使用 CallCompositeOptions
构造函数参数 enableMultitasking
和 enableSystemPiPWhenMultitasking
。
注意
部署目标低于 iOS 16 的应用需要 com.apple.developer.avfoundation multitasking-camera-access
权利才能以画中画模式使用相机。
let callCompositeOptions = CallCompositeOptions(
enableMultitasking: true,
enableSystemPictureInPictureWhenMultitasking: true)
let callComposite = CallComposite(withOptions: callCompositeOptions)
enableMultitasking
设置为 true
时,会显示“后退”按钮。
当用户点击“后退”按钮时,“通话 UI”会隐藏;如果已配置,则会显示“画中画”视图。
若要以编程方式进入或退出多任务处理,请使用 isHidden
属性:
// Close calling UI and display PiP
callComposite.isHidden = true
// Displaye calling UI and close PiP
callComposite.isHidden = false