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

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

डिवाइस की 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 अभी पढ़ा जा सकता है, लेकिन अलग से लिखा नहीं जा सकता।