pub struct SFSpeechRecognitionTask { /* private fields */ }
SFSpeechRecognitionTask
only.Expand description
A task object for monitoring the speech recognition progress.
Use an SFSpeechRecognitionTask
object to determine the state of a speech recognition task, to cancel an ongoing task, or to signal the end of the task.
You don’t create speech recognition task objects directly. Instead, you receive one of these objects after calling SFSpeechRecognizer/recognitionTask(with:resultHandler:)
or SFSpeechRecognizer/recognitionTask(with:delegate:)
on your SFSpeechRecognizer
object.
See also Apple’s documentation
Implementations§
Source§impl SFSpeechRecognitionTask
impl SFSpeechRecognitionTask
Sourcepub unsafe fn state(&self) -> SFSpeechRecognitionTaskState
pub unsafe fn state(&self) -> SFSpeechRecognitionTaskState
The current state of the speech recognition task.
Check the value of this property to get the state of the in-progress speech recognition session. For valid values, see SFSpeechRecognitionTaskState
.
Sourcepub unsafe fn isFinishing(&self) -> bool
pub unsafe fn isFinishing(&self) -> bool
A Boolean value that indicates whether audio input has stopped.
By default, the value of this property is false
.
Sourcepub unsafe fn finish(&self)
pub unsafe fn finish(&self)
Stops accepting new audio and finishes processing on the audio input that has already been accepted.
For audio buffer–based recognition, recognition does not finish until this method is called, so be sure to call it when the audio source is exhausted.
Sourcepub unsafe fn isCancelled(&self) -> bool
pub unsafe fn isCancelled(&self) -> bool
A Boolean value that indicates whether the speech recognition task was canceled.
By default, the value of this property is false
.
Sourcepub unsafe fn cancel(&self)
pub unsafe fn cancel(&self)
Cancels the current speech recognition task.
You can cancel recognition tasks for both prerecorded and live audio input. For example, you might cancel a task in response to a user action or because the recording was interrupted.
When canceling a task, be sure to release any resources associated with the task, such as the audio input resources you are using to capture audio samples.
Sourcepub unsafe fn error(&self) -> Option<Retained<NSError>>
pub unsafe fn error(&self) -> Option<Retained<NSError>>
An error object that specifies the error that occurred during a speech recognition task.
The system may return one of the errors listed in the table below.
Error Code | Error Domain | Description |
---|---|---|
102 | kLSRErrorDomain | Assets are not installed. |
201 | kLSRErrorDomain | Siri or Dictation is disabled. |
300 | kLSRErrorDomain | Failed to initialize recognizer. |
301 | kLSRErrorDomain | Request was canceled. |
203 | kAFAssistantErrorDomain | Failure occurred during speech recognition. |
1100 | kAFAssistantErrorDomain | Trying to start recognition while an earlier instance is still active. |
1101 | kAFAssistantErrorDomain | Connection to speech process was invalidated. |
1107 | kAFAssistantErrorDomain | Connection to speech process was interrupted. |
1110 | kAFAssistantErrorDomain | Failed to recognize any speech. |
1700 | kAFAssistantErrorDomain | Request is not authorized. |
Methods from Deref<Target = NSObject>§
Sourcepub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
pub fn doesNotRecognizeSelector(&self, sel: Sel) -> !
Handle messages the object doesn’t recognize.
See Apple’s documentation for details.
Methods from Deref<Target = AnyObject>§
Sourcepub fn class(&self) -> &'static AnyClass
pub fn class(&self) -> &'static AnyClass
Dynamically find the class of this object.
§Panics
May panic if the object is invalid (which may be the case for objects
returned from unavailable init
/new
methods).
§Example
Check that an instance of NSObject
has the precise class NSObject
.
use objc2::ClassType;
use objc2::runtime::NSObject;
let obj = NSObject::new();
assert_eq!(obj.class(), NSObject::class());
Sourcepub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
👎Deprecated: this is difficult to use correctly, use Ivar::load
instead.
pub unsafe fn get_ivar<T>(&self, name: &str) -> &Twhere
T: Encode,
Ivar::load
instead.Use Ivar::load
instead.
§Safety
The object must have an instance variable with the given name, and it
must be of type T
.
See Ivar::load_ptr
for details surrounding this.
Sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: DowncastTarget,
Attempt to downcast the object to a class of type T
.
This is the reference-variant. Use Retained::downcast
if you want
to convert a retained object to another type.
§Mutable classes
Some classes have immutable and mutable variants, such as NSString
and NSMutableString
.
When some Objective-C API signature says it gives you an immutable class, it generally expects you to not mutate that, even though it may technically be mutable “under the hood”.
So using this method to convert a NSString
to a NSMutableString
,
while not unsound, is generally frowned upon unless you created the
string yourself, or the API explicitly documents the string to be
mutable.
See Apple’s documentation on mutability and on
isKindOfClass:
for more details.
§Generic classes
Objective-C generics are called “lightweight generics”, and that’s because they aren’t exposed in the runtime. This makes it impossible to safely downcast to generic collections, so this is disallowed by this method.
You can, however, safely downcast to generic collections where all the
type-parameters are AnyObject
.
§Panics
This works internally by calling isKindOfClass:
. That means that the
object must have the instance method of that name, and an exception
will be thrown (if CoreFoundation is linked) or the process will abort
if that is not the case. In the vast majority of cases, you don’t need
to worry about this, since both root objects NSObject
and
NSProxy
implement this method.
§Examples
Cast an NSString
back and forth from NSObject
.
use objc2::rc::Retained;
use objc2_foundation::{NSObject, NSString};
let obj: Retained<NSObject> = NSString::new().into_super();
let string = obj.downcast_ref::<NSString>().unwrap();
// Or with `downcast`, if we do not need the object afterwards
let string = obj.downcast::<NSString>().unwrap();
Try (and fail) to cast an NSObject
to an NSString
.
use objc2_foundation::{NSObject, NSString};
let obj = NSObject::new();
assert!(obj.downcast_ref::<NSString>().is_none());
Try to cast to an array of strings.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
// This is invalid and doesn't type check.
let arr = arr.downcast_ref::<NSArray<NSString>>();
This fails to compile, since it would require enumerating over the array to ensure that each element is of the desired type, which is a performance pitfall.
Downcast when processing each element instead.
use objc2_foundation::{NSArray, NSObject, NSString};
let arr = NSArray::from_retained_slice(&[NSObject::new()]);
for elem in arr {
if let Some(data) = elem.downcast_ref::<NSString>() {
// handle `data`
}
}
Trait Implementations§
Source§impl AsRef<AnyObject> for SFSpeechRecognitionTask
impl AsRef<AnyObject> for SFSpeechRecognitionTask
Source§impl AsRef<NSObject> for SFSpeechRecognitionTask
impl AsRef<NSObject> for SFSpeechRecognitionTask
Source§impl Borrow<AnyObject> for SFSpeechRecognitionTask
impl Borrow<AnyObject> for SFSpeechRecognitionTask
Source§impl Borrow<NSObject> for SFSpeechRecognitionTask
impl Borrow<NSObject> for SFSpeechRecognitionTask
Source§impl ClassType for SFSpeechRecognitionTask
impl ClassType for SFSpeechRecognitionTask
Source§const NAME: &'static str = "SFSpeechRecognitionTask"
const NAME: &'static str = "SFSpeechRecognitionTask"
Source§type ThreadKind = <<SFSpeechRecognitionTask as ClassType>::Super as ClassType>::ThreadKind
type ThreadKind = <<SFSpeechRecognitionTask as ClassType>::Super as ClassType>::ThreadKind
Source§impl Debug for SFSpeechRecognitionTask
impl Debug for SFSpeechRecognitionTask
Source§impl Deref for SFSpeechRecognitionTask
impl Deref for SFSpeechRecognitionTask
Source§impl Hash for SFSpeechRecognitionTask
impl Hash for SFSpeechRecognitionTask
Source§impl Message for SFSpeechRecognitionTask
impl Message for SFSpeechRecognitionTask
Source§impl NSObjectProtocol for SFSpeechRecognitionTask
impl NSObjectProtocol for SFSpeechRecognitionTask
Source§fn isEqual(&self, other: Option<&AnyObject>) -> bool
fn isEqual(&self, other: Option<&AnyObject>) -> bool
Source§fn hash(&self) -> usize
fn hash(&self) -> usize
Source§fn isKindOfClass(&self, cls: &AnyClass) -> bool
fn isKindOfClass(&self, cls: &AnyClass) -> bool
Source§fn is_kind_of<T>(&self) -> bool
fn is_kind_of<T>(&self) -> bool
isKindOfClass
directly, or cast your objects with AnyObject::downcast_ref