pub struct AudioInput { /* private fields */ }Expand description
The audio input device and stream configuration used for recording.
The caller must be certain that the config works for the given device on
the current platform; AudioInput::default_device and
AudioInput::from_device pick configs that do.
Implementations§
Source§impl AudioInput
impl AudioInput
Sourcepub fn default_device() -> Result<Self, Error>
pub fn default_device() -> Result<Self, Error>
Uses the system default input device with its default configuration.
Sourcepub fn from_device(dev: Device) -> Result<Self, Error>
pub fn from_device(dev: Device) -> Result<Self, Error>
Uses the given device with a mono input configuration if it offers one, otherwise with its default input configuration.
Everything is visualized as mono anyway, so recording mono directly halves the data the device has to deliver and saves the downmix. For a device that only offers stereo, recording averages the two channels.
Sourcepub const fn new(dev: Device, cfg: StreamConfig) -> Self
pub const fn new(dev: Device, cfg: StreamConfig) -> Self
Uses the given device and stream configuration.
A buffer_size of cpal::BufferSize::Default does not mean the
device default: recording then asks for 256 frames per callback,
which keeps the visualization moving every frame on high refresh
rate displays, and only falls back to the device default if the
device rejects that. A fixed size is used as given.
Sourcepub fn devices() -> Result<Vec<(String, Device)>, Error>
pub fn devices() -> Result<Vec<(String, Device)>, Error>
All available input devices of the default host, sorted by name.
Sourcepub const fn config(&self) -> &StreamConfig
pub const fn config(&self) -> &StreamConfig
The stream configuration.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AudioInput
impl RefUnwindSafe for AudioInput
impl Send for AudioInput
impl Sync for AudioInput
impl Unpin for AudioInput
impl UnsafeUnpin for AudioInput
impl UnwindSafe for AudioInput
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more