跳到主要内容

音量控制概述

音量控制提供设备的音量设置能力、当前音量快照,以及设置或分步调整受支持音量通道的命令。

功能概览

使用 AI 辅助实现

使用 AI 开发

让 AI 帮助实现此工作流

使用官方“管理 AIBuds 音量”技能,根据你的 App 完成实现。

请阅读并遵循 https://docs-aibuds.github.io/zh-Hans/skills/manage-aibuds-volume,使用该技能在当前 iOS 项目中完成“管理 AIBuds 音量”,并验证结果。
查看官方技能

开始使用

  1. 连接设备:等待设备已连接且就绪。
  2. 检查协议支持:确认设备支持 DeviceVolumeControlAPI
  3. 读取能力:显示控件前读取 volumeSetCapability
  4. 读取当前值:使用可选的 volumesInfo 快照。
  5. 设置受支持通道:使用 DeviceVolumeType 值和 0 到 100 的级别。

关键概念

能力

VolumeSetCapability 返回 .none.common.advanced

  • .none 不提供 SDK 音量设置。
  • .common 支持系统提示音、媒体和通话中音量控制。
  • .advanced 还在当前快照中提供本地播放音量,但当前公开 SDK 不提供本地播放音量写入 API。

音量通道

DeviceVolumeType 当前包括系统提示音、媒体播放和通话中音量。每个设置方法接受 0 到 100 的级别。

协议参考

音量控制通过 DeviceVolumeControlAPI 访问:

Swift
guard let device = device as? DeviceVolumeControlAPI else {
    print("Device does not support DeviceVolumeControlAPI")
    return
}

最佳实践

  1. 检查能力:当值为 .none 时不要显示写入控件。
  2. 验证级别:确保明确设置的值位于 0 到 100。
  3. 为连续控件防抖:避免为滑块的每个中间事件发送命令。
  4. 监听变化:UI 需要跟踪设备侧更新时使用 didVolumesChanged

注意事项

  • volumesInfo 是可选值,其中各个值也可能不可用。
  • 当前 SDK 可以读取 localPlaybackVolume,但不能单独设置。仅在公开写入 API 提供后再添加该控件。
  • 读取快照后,硬件控件或其他客户端仍可能更改设备音量。