वॉल्यूम क्षमता और स्तर देखें
डिवाइस की volume-setting capability और अभी उपलब्ध volume levels पढ़ें।
आवश्यक शर्तें
- डिवाइस connected और ready है।
- डिवाइस
DeviceVolumeControlAPIको conform करता है।
API संदर्भ
Framework
AIBuds.xcframework
Import
- Swift
- Objective-C
import AIBuds#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>प्रोटोकॉल
- Swift
- Objective-C
/// 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 }
}/// The protocol for device volume control API.
@protocol AIBudsDeviceVolumeControlAPI <AIBudsDeviceAPI>
/// The device's volume-set capability.
@property(nonatomic, readonly) enum AIBudsVolumeSetCapability volumeSetCapability;
/// Current volumes information of the device, or `nil` if unavailable.
@property(nonatomic, readonly, strong) AIBudsVolumesInfoModel *_Nullable volumesInfo;
@endप्रॉपर्टी
| Property | Type | विवरण |
|---|---|---|
volumeSetCapability | VolumeSetCapability | Volume-setting capability। |
volumesInfo | VolumesInfoModel? | Current volume values; unavailable होने पर nil। |
क्षमता मान
| Value | वर्तमान SDK में अर्थ |
|---|---|
.none | Volume setting उपलब्ध नहीं। |
.common | System-prompt, media और in-call channels set किए जा सकते हैं। |
.advanced | Current snapshot local-playback volume भी report कर सकता है; अभी public local-playback setter उपलब्ध नहीं। |
वॉल्यूम जानकारी
| Property | Type | Range | विवरण |
|---|---|---|---|
systemPromptVolume | NSNumber? | 0–100 | Current system-prompt volume। |
mediaVolume | NSNumber? | 0–100 | Current media-playback volume। |
callVolume | NSNumber? | 0–100 | Current in-call volume। |
localPlaybackVolume | NSNumber? | 0–100 | Current local-playback volume; वर्तमान public API में read-only। |
उपयोग के उदाहरण
- Swift
- Objective-C
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")")
}#import <AIBuds/AIBuds-Swift.h>
#import <AIBuds/AIBuds.h>
id<AIBudsDeviceVolumeControlAPI> device = (id<AIBudsDeviceVolumeControlAPI>)self.device;
if ([device conformsToProtocol:@protocol(AIBudsDeviceVolumeControlAPI)]) {
AIBudsVolumesInfoModel *volumes = device.volumesInfo;
NSLog(@"System prompt: %@", volumes.systemPromptVolume);
NSLog(@"Media: %@", volumes.mediaVolume);
NSLog(@"Call: %@", volumes.callVolume);
NSLog(@"Local playback: %@", volumes.localPlaybackVolume);
}त्रुटि प्रबंधन
इन properties का completion handler नहीं है। Unsupported protocol conformance, nil model और individual nil channel values को काल्पनिक defaults दिए बिना संभालें।
सर्वोत्तम अभ्यास
- Optional values को optional रखें:
nilको zero न दिखाएँ। - UI decisions में capability उपयोग करें:
.noneपर सभी write controls छिपाएँ। - Updates देखें: Live values चाहिए हों तो
didVolumesChangeddelegate callback से refresh करें।
ध्यान दें
- SDK
getVolumeControlSupportयाResult-based query के बजाय synchronous properties देता है। - Local-playback volume अभी पढ़ा जा सकता है, लेकिन अलग से लिखा नहीं जा सकता।