본문으로 건너뛰기

음량 지원 수준 및 현재 값 확인

기기의 음량 설정 지원 수준과 현재 제공되는 음량 값을 읽습니다.

사전 요구 사항

  • 기기가 연결되어 사용할 수 있는 상태입니다.
  • 기기가 DeviceVolumeControlAPI를 준수합니다.

API 참고

프레임워크

AIBuds.xcframework

가져오기

Swift
import AIBuds

프로토콜

Swift
/// The protocol for device volume control API.
protocol DeviceVolumeControlAPI: DeviceAPI {
    /// The device's volume-set capability.
    var volumeSetCapability: VolumeSetCapability { get }

    /// Current volumes information of the device, or `nil` if unavailable.
    var volumesInfo: VolumesInfoModel? { get }
}

속성

속성타입설명
volumeSetCapabilityVolumeSetCapability음량 설정 지원 수준입니다.
volumesInfoVolumesInfoModel?현재 음량 값이며 사용할 수 없으면 nil입니다.

지원 수준 값

현재 SDK에서의 의미
.none음량을 설정할 수 없습니다.
.common시스템 안내음, 미디어 및 통화 음량을 설정할 수 있습니다.
.advanced현재 스냅샷에서 로컬 재생 음량도 확인할 수 있지만 공개된 로컬 재생 setter는 아직 없습니다.

음량 정보

속성타입범위설명
systemPromptVolumeNSNumber?0–100현재 시스템 안내음 음량입니다.
mediaVolumeNSNumber?0–100현재 미디어 재생 음량입니다.
callVolumeNSNumber?0–100현재 통화 음량입니다.
localPlaybackVolumeNSNumber?0–100현재 로컬 재생 음량이며 공개 API에서는 읽기만 가능합니다.

사용 예제

Swift
import AIBuds

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

print("Capability: \(device.volumeSetCapability)")

if let volumes = device.volumesInfo {
    print("System prompt: \(volumes.systemPromptVolume?.intValue.description ?? "Unavailable")")
    print("Media: \(volumes.mediaVolume?.intValue.description ?? "Unavailable")")
    print("Call: \(volumes.callVolume?.intValue.description ?? "Unavailable")")
    print("Local playback: \(volumes.localPlaybackVolume?.intValue.description ?? "Unavailable")")
}

오류 처리

이 속성에는 completion handler가 없습니다. 프로토콜 미지원, nil 모델 및 개별 채널의 nil 값을 임의의 기본값으로 바꾸지 말고 처리하세요.

권장 사항

  1. 선택적 값 유지: nil을 0으로 표시하지 마세요.
  2. 지원 수준에 따라 UI 결정: .none이면 모든 설정 UI를 숨기세요.
  3. 변경 관찰: 실시간 값이 필요하면 didVolumesChanged delegate 콜백에서 갱신하세요.

참고

  • SDK는 getVolumeControlSupport 또는 Result 기반 조회 대신 동기식 속성을 제공합니다.
  • 현재 로컬 재생 음량은 읽을 수 있지만 별도로 설정할 수 없습니다.