Çevrimdışı Sesli Asistan Desteğini Öğrenme
Mod denetimlerini göstermeden önce bağlı aygıtın sesli asistan yeteneğini okuyun.
Ön Koşullar
- Aygıt bağlı ve hazırdır.
- Aygıt
OnDeviceVoiceAssistantAPIprotokolüne uyar.
API Reference
Framework
AIBuds.xcframework
Import
- Swift
- Objective-C
import AIBuds
import AIBudsFoundation#import <AIBuds/AIBuds-Swift.h>Declaration
- Swift
- Objective-C
/// The protocol for the on-device voice assistant API.
protocol OnDeviceVoiceAssistantAPI: DeviceAPI {
/// The capability of the on-device voice assistant.
var onDeviceVoiceAssistantCapability: OnDeviceVoiceAssistantCapability { get }
}/// The protocol for the on-device voice assistant API.
@protocol AIBudsOnDeviceVoiceAssistantAPI <AIBudsDeviceAPI>
/// The capability of the on-device voice assistant.
@property(nonatomic, readonly)
AIBudsOnDeviceVoiceAssistantCapability onDeviceVoiceAssistantCapability;
@endonDeviceVoiceAssistantCapability ve OnDeviceVoiceAssistantCapability başvurularına bakın.
Kullanım Örnekleri
- Swift
- Objective-C
guard let voiceAssistant = device as? OnDeviceVoiceAssistantAPI else {
supportLabel.text = "Not supported"
return
}
switch voiceAssistant.onDeviceVoiceAssistantCapability {
case .none:
supportLabel.text = "No voice-command capability"
case .keywordWakeup:
supportLabel.text = "Keyword wake-up"
case .common:
supportLabel.text = "Common voice commands"
}id<AIBudsOnDeviceVoiceAssistantAPI> voiceAssistant =
(id<AIBudsOnDeviceVoiceAssistantAPI>)self.device;
if (![voiceAssistant conformsToProtocol:@protocol(AIBudsOnDeviceVoiceAssistantAPI)]) {
self.supportLabel.text = @"Not supported";
return;
}
switch (voiceAssistant.onDeviceVoiceAssistantCapability) {
case AIBudsOnDeviceVoiceAssistantCapabilityNone:
self.supportLabel.text = @"No voice-command capability";
break;
case AIBudsOnDeviceVoiceAssistantCapabilityKeywordWakeup:
self.supportLabel.text = @"Keyword wake-up";
break;
case AIBudsOnDeviceVoiceAssistantCapabilityCommon:
self.supportLabel.text = @"Common voice commands";
break;
}Notlar
- Protokol uyumu ile yetenek ayrı kontrollerdir. Uyumlu bir aygıt yine de
.nonebildirebilir. - Yetenek eşzamansız bir sorgu değil, özelliktir.
- Arayüzde gösterilen modları yeteneğe göre sınırlandırın.