音量控制概述
音量控制提供设备的音量设置能力、当前音量快照,以及设置或分步调整受支持音量通道的命令。
功能概览
查看音量能力与级别
读取设备的音量设置能力和当前音量快照
设置音量
设置或分步调整受支持的设备音量通道
使用 AI 辅助实现
使用 AI 开发
让 AI 帮助实现此工作流
使用官方“管理 AIBuds 音量”技能,根据你的 App 完成实现。
请阅读并遵循 https://docs-aibuds.github.io/zh-Hans/skills/manage-aibuds-volume,使用该技能在当前 iOS 项目中完成“管理 AIBuds 音量”,并验证结果。开始使用
- 连接设备:等待设备已连接且就绪。
- 检查协议支持:确认设备支持
DeviceVolumeControlAPI。 - 读取能力:显示控件前读取
volumeSetCapability。 - 读取当前值:使用可选的
volumesInfo快照。 - 设置受支持通道:使用
DeviceVolumeType值和 0 到 100 的级别。
关键概念
能力
VolumeSetCapability 返回 .none、.common 或 .advanced。
.none不提供 SDK 音量设置。.common支持系统提示音、媒体和通话中音量控制。.advanced还在当前快照中提供本地播放音量,但当前公开 SDK 不提供本地播放音量写入 API。
音量通道
DeviceVolumeType 当前包括系统提示音、媒体播放和通话中音量。每个设置方法接受 0 到 100 的级别。
协议参考
音量控制通过 DeviceVolumeControlAPI 访问:
- Swift
- Objective-C
guard let device = device as? DeviceVolumeControlAPI else {
print("Device does not support DeviceVolumeControlAPI")
return
}id<AIBudsDeviceVolumeControlAPI> device = (id<AIBudsDeviceVolumeControlAPI>)self.device;
if (![device conformsToProtocol:@protocol(AIBudsDeviceVolumeControlAPI)]) {
NSLog(@"Device does not support AIBudsDeviceVolumeControlAPI");
return;
}最佳实践
- 检查能力:当值为
.none时不要显示写入控件。 - 验证级别:确保明确设置的值位于 0 到 100。
- 为连续控件防抖:避免为滑块的每个中间事件发送命令。
- 监听变化:UI 需要跟踪设备侧更新时使用
didVolumesChanged。
注意事项
volumesInfo是可选值,其中各个值也可能不可用。- 当前 SDK 可以读取
localPlaybackVolume,但不能单独设置。仅在公开写入 API 提供后再添加该控件。 - 读取快照后,硬件控件或其他客户端仍可能更改设备音量。