你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
自定义按钮
若要实现自定义操作或修改当前按钮布局,可以与本机 UI 库的 API 进行交互。 该 API 涉及定义自定义按钮配置、指定操作以及管理按钮栏的当前操作。 该 API 提供了添加自定义操作和删除现有按钮的方法,所有这些方法都可以通过直接的函数调用来访问。
此功能提供了高度的自定义,并确保用户界面与应用程序的整体设计保持统一和一致。
先决条件
- 具有活动订阅的 Azure 帐户。 免费创建帐户。
- 已部署的通信服务资源。 创建通信服务资源。
- 用于启用通话客户端的用户访问令牌。 获取用户访问令牌。
- 可选:完成快速入门以开始使用 UI 库复合项。
设置功能
删除按钮
CallCompositeCallScreenControlBarOptions
,允许通过删除特定按钮(例如摄像头、麦克风和音频控件)来灵活地自定义按钮。 使用该 API,你可以根据特定的应用程序要求和用户体验设计来定制用户界面。 只需为 CallCompositeButtonViewData
将 visible
或 enabled
设置为 false
,即可隐藏或禁用按钮。
val controlBarOptions = CallCompositeCallScreenControlBarOptions()
val cameraButton = CallCompositeButtonViewData()
.setVisible(false)
controlBarOptions.setCameraButton(cameraButton)
val callScreenOptions = CallCompositeCallScreenOptions()
.setControlBarOptions(controlBarOptions)
val localOptions = CallCompositeLocalOptions()
.setCallScreenOptions(callScreenOptions)
val callComposite = CallCompositeBuilder()
.build()
callComposite.launch(context, locator, localOptions)
启动调用复合后,可以更新按钮。
添加自定义操作
Call composite
使用的是 Fluent UI 图标。 可以直接从 Fluent UI GitHub 存储库下载这些图标,并根据需要将其合并到项目中。 这种方法保证了所有用户界面元素的视觉一致性,增强了整体用户体验。
// Custom header button
val headerCustomButton =
CallCompositeCustomButtonViewData(
"headerCustomButton",
R.drawable.my_header_button_icon,
"My header button",
fun(it: CallCompositeCustomButtonClickEvent) {
// process my button onClick
}
)
val headerOptions = CallCompositeCallScreenHeaderViewData()
.setCustomButtons(listOf(headerCustomButton))
// Custom control bar button
val controlBarOptions = CallCompositeCallScreenControlBarOptions()
controlBarOptions.setCustomButtons(
listOf(
CallCompositeCustomButtonViewData(
"customButtonId",
R.drawable.my_button_image,
"My button",
fun(it: CallCompositeCustomButtonClickEvent) {
// Process my button onClick
},
)
)
)
val callScreenOptions = CallCompositeCallScreenOptions()
.setHeaderViewData(headerOptions)
.setControlBarOptions(controlBarOptions)
val localOptions = CallCompositeLocalOptions()
.setCallScreenOptions(callScreenOptions)
val callComposite = CallCompositeBuilder()
.build()
callComposite.launch(context, locator, localOptions)
与 Call composite
提供的按钮类似,自定义按钮在启动后可更新。
删除或禁用按钮
CallScreenControlBarOptions
,允许通过删除特定按钮(例如摄像头、麦克风和音频控件)来灵活地自定义按钮。 使用该 API,你可以根据特定的应用程序要求和用户体验设计来定制用户界面。 只需为 ButtonViewData
将 visible
或 enabled
设置为 false
,即可隐藏或禁用按钮。
let cameraButton = ButtonViewData(visible: false)
let callScreenControlBarOptions = CallScreenControlBarOptions(
cameraButton: cameraButton
)
let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)
let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)
启动调用复合后,可以更新按钮。
cameraButton.visible = true
添加自定义操作
Call composite
使用的是 Fluent UI 图标。 可以直接从 Fluent UI GitHub 存储库下载这些图标,并根据需要将其合并到项目中。 这种方法保证了所有用户界面元素的视觉一致性,增强了整体用户体验。
// Custom header button
let headerCustomButton = CustomButtonViewData(image: UIImage(named: "...")!,
title: "My header button") {_ in
// Process my button onClick
}
let callScreenHeaderViewData = CallScreenHeaderViewData(
customButtons: [headerCustomButton]
)
// Custom control bar button
let customButton = CustomButtonViewData(image: UIImage(named: "...")!,
title: "My button") {_ in
// Process my button onClick
}
let callScreenControlBarOptions = CallScreenControlBarOptions(
customButtons: [customButton]
)
let callScreenOptions = CallScreenOptions(
controlBarOptions: callScreenControlBarOptions, headerViewData: callScreenHeaderViewData)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)
let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)
与 Call composite
提供的按钮类似,自定义按钮在启动后可更新。
customButton.enabled = true