Struct AVAudioSessionIOType

Source
#[repr(transparent)]
pub struct AVAudioSessionIOType(pub NSUInteger);
Available on crate feature AVAudioSessionTypes only.
Expand description

Values to be used by setAggregatedIOPreference:error: method.

Starting in iOS 10, applications that use AVCaptureSession on iPads and iPhones that support taking Live Photos, will have non-aggregated audio I/O unless the app opts out by setting its AVAudioSessionIOType to Aggregated. Non-aggregated audio I/O means that separate threads will be used to service audio I/O for input and output directions.

Note that in cases where the I/O is not aggregated, the sample rate and IO buffer duration properties will map to the output audio device. In this scenario, the input and output audio hardware may be running at different sample rates and with different IO buffer durations. If your app requires input and output audio to be presented in the same realtime I/O callback, or requires that input and output audio have the same sample rate or IO buffer duration, or if your app requires the ability to set a preferred sample rate or IO buffer duration for audio input, set the AVAudioSessionIOType to Aggregated.

Apps that don’t use AVCaptureSession and use AVAudioSessionCategoryPlayAndRecord will continue to have aggregated audio I/O, as in previous versions of iOS.

The default value. If your app does not use AVCaptureSession or does not have any specific requirement for aggregating input and output audio in the same realtime I/O callback, use this value. Note that if your app does not use AVCaptureSession, it will get aggregated I/O when using AVAudioSessionCategoryPlayAndRecord.

If your app does utilize AVCaptureSession, use of this value will allow AVCaptureSession to start recording without glitching already running output audio and will allow the system to utilize power-saving optimizations.

Use this value if your session uses AVAudioSessionCategoryPlayAndRecord and requires input and output audio to be presented in the same realtime I/O callback. For example, if your app will be using a RemoteIO with both input and output enabled.

Note that your session’s preference to use aggregated IO will not be honored if it specifies AVAudioSessionCategoryOptionMixWithOthers AND another app’s audio session was already active with non-mixable, non-aggregated input/output.

Added in iOS 10.0. Not applicable on watchos, tvos, macos.

See also Apple’s documentation

Tuple Fields§

§0: NSUInteger

Implementations§

Trait Implementations§

Source§

impl Clone for AVAudioSessionIOType

Source§

fn clone(&self) -> AVAudioSessionIOType

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AVAudioSessionIOType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Encode for AVAudioSessionIOType

Source§

const ENCODING: Encoding = NSUInteger::ENCODING

The Objective-C type-encoding for this type.
Source§

impl Hash for AVAudioSessionIOType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for AVAudioSessionIOType

Source§

fn cmp(&self, other: &AVAudioSessionIOType) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for AVAudioSessionIOType

Source§

fn eq(&self, other: &AVAudioSessionIOType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for AVAudioSessionIOType

Source§

fn partial_cmp(&self, other: &AVAudioSessionIOType) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl RefEncode for AVAudioSessionIOType

Source§

const ENCODING_REF: Encoding

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl Copy for AVAudioSessionIOType

Source§

impl Eq for AVAudioSessionIOType

Source§

impl StructuralPartialEq for AVAudioSessionIOType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> EncodeArgument for T
where T: Encode,

Source§

const ENCODING_ARGUMENT: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
Source§

impl<T> EncodeReturn for T
where T: Encode,

Source§

const ENCODING_RETURN: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> AutoreleaseSafe for T
where T: ?Sized,