मुख्य कंटेंट तक स्किप करें

वॉल्यूम क्षमता और स्तर देखें

डिवाइस की volume-setting capability और अभी उपलब्ध volume levels पढ़ें।

आवश्यक शर्तें​

  • डिवाइस connected और ready है।
  • डिवाइस DeviceVolumeControlAPI को conform करता है।

API संदर्भ​

Framework​

AIBuds.xcframework

Import​

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 }
}

प्रॉपर्टी​

PropertyTypeविवरण
volumeSetCapabilityVolumeSetCapabilityVolume-setting capability।
volumesInfoVolumesInfoModel?Current volume values; unavailable होने पर nil।

क्षमता मान​

Valueवर्तमान SDK में अर्थ
.noneVolume setting उपलब्ध नहीं।
.commonSystem-prompt, media और in-call channels set किए जा सकते हैं।
.advancedCurrent snapshot local-playback volume भी report कर सकता है; अभी public local-playback setter उपलब्ध नहीं।

वॉल्यूम जानकारी​

PropertyTypeRangeविवरण
systemPromptVolumeNSNumber?0–100Current system-prompt volume।
mediaVolumeNSNumber?0–100Current media-playback volume।
callVolumeNSNumber?0–100Current in-call volume।
localPlaybackVolumeNSNumber?0–100Current local-playback volume; वर्तमान public API में read-only।

उपयोग के उदाहरण​

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")")
}

त्रुटि प्रबंधन​

इन properties का completion handler नहीं है। Unsupported protocol conformance, nil model और individual nil channel values को काल्पनिक defaults दिए बिना संभालें।

सर्वोत्तम अभ्यास​

  1. Optional values को optional रखें: nil को zero न दिखाएँ।
  2. UI decisions में capability उपयोग करें: .none पर सभी write controls छिपाएँ।
  3. Updates देखें: Live values चाहिए हों तो didVolumesChanged delegate callback से refresh करें।

ध्यान दें​

  • SDK getVolumeControlSupport या Result-based query के बजाय synchronous properties देता है।
  • Local-playback volume अभी पढ़ा जा सकता है, लेकिन अलग से लिखा नहीं जा सकता।