본문으로 건너뛰기

음량 제어 개요

음량 제어 기능은 기기의 음량 설정 지원 수준과 현재 음량 스냅샷을 제공하고, 지원되는 음량 채널을 직접 설정하거나 단계별로 조절하는 명령을 제공합니다.

기능 개요​

AI를 활용해 구현

AI로 구현

AI로 이 워크플로 구현

공식 “AIBuds 음량 관리” 스킬을 사용해 앱에 맞게 구현하세요.

https://docs-aibuds.github.io/ko/skills/manage-aibuds-volume을 읽고 지침을 따르세요. 이 스킬로 “AIBuds 음량 관리”을 이 iOS 프로젝트에 구현하고 검증하세요.
공식 스킬 보기

시작하기​

  1. 기기 연결 - 기기가 연결되어 사용할 수 있을 때까지 기다립니다.
  2. 프로토콜 확인 - DeviceVolumeControlAPI 지원 여부를 확인합니다.
  3. 지원 수준 확인 - 제어 UI를 표시하기 전에 volumeSetCapability를 확인합니다.
  4. 현재 값 확인 - 선택적 volumesInfo 스냅샷을 읽습니다.
  5. 지원 채널 설정 - DeviceVolumeType 값과 0부터 100까지의 음량을 사용합니다.

핵심 개념​

지원 수준​

VolumeSetCapability는 .none, .common 또는 .advanced를 보고합니다.

  • .none은 SDK를 통한 음량 설정을 지원하지 않습니다.
  • .common은 시스템 안내음, 미디어 및 통화 음량 제어를 지원합니다.
  • .advanced는 현재 스냅샷에서 로컬 재생 음량도 제공하지만, 현재 공개 SDK에는 로컬 재생 음량 설정 API가 없습니다.

음량 채널​

DeviceVolumeType에는 현재 시스템 안내음, 미디어 재생 및 통화 음량이 포함됩니다. 각 setter에는 0부터 100까지의 값을 전달합니다.

프로토콜 참고​

음량 제어 기능은 DeviceVolumeControlAPI를 통해 사용합니다.

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

권장 사항​

  1. 지원 수준 확인: .none이면 설정 UI를 표시하지 마세요.
  2. 값 검증: 직접 설정하는 값은 0부터 100 사이로 제한하세요.
  3. 연속 입력 debounce: 슬라이더의 모든 중간 이벤트마다 명령을 보내지 마세요.
  4. 변경 관찰: UI에서 기기 측 변경을 반영해야 하면 didVolumesChanged를 사용하세요.

참고​

  • volumesInfo는 선택적이며 개별 음량 값도 제공되지 않을 수 있습니다.
  • 현재 SDK는 localPlaybackVolume을 읽을 수 있지만 별도로 설정할 수는 없습니다. 공개 설정 API가 추가된 뒤 해당 제어 UI를 제공하세요.
  • 스냅샷을 읽은 뒤에도 하드웨어 버튼이나 다른 클라이언트가 기기 음량을 변경할 수 있습니다.