pub struct AudioFrameReader<R: Read + Seek> { /* private fields */ }
Expand description

Read audio frames

The inner reader is interpreted as a raw audio data bitstream having a format specified by format.

Implementations§

source§

impl<R: Read + Seek> AudioFrameReader<R>

source

pub fn new( inner: R, format: WaveFmt, start: u64, length: u64 ) -> Result<Self, Error>

Create a new AudioFrameReader

Panics

This method does a few sanity checks on the provided format parameter to confirm the block_alignment law is fulfilled and the format tag is readable by this implementation (only format 0x01 is supported at this time.)

source

pub fn into_inner(self) -> R

Unwrap the inner reader.

source

pub fn locate(&mut self, to: u64) -> Result<u64, Error>

Locate the read position to a different frame

Seeks within the audio stream.

Returns the new location of the read position.

locate() behaves similarly to Read methods in that seeking after the end of the audio data is not an error.

source

pub fn read_frames<S>(&mut self, buffer: &mut [S]) -> Result<u64, Error>where S: Sample,

Reads frames from the file into the provided buffer

The function will attempt to fill the buffer, but will stop without error when the end of the file is reached.

The reader will convert from the file’s sample type into the buffer’s sample type. Note that no dithering will be applied during sample type conversion, if dithering is required then it will need to be applied manually.

The return value is the number of frames read into the buffer.

Trait Implementations§

source§

impl<R: Debug + Read + Seek> Debug for AudioFrameReader<R>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R> RefUnwindSafe for AudioFrameReader<R>where R: RefUnwindSafe,

§

impl<R> Send for AudioFrameReader<R>where R: Send,

§

impl<R> Sync for AudioFrameReader<R>where R: Sync,

§

impl<R> Unpin for AudioFrameReader<R>where R: Unpin,

§

impl<R> UnwindSafe for AudioFrameReader<R>where R: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<S> FromSample<S> for S

source§

fn from_sample_(s: S) -> S

source§

impl<T, U> Into<U> for Twhere 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, U> ToSample<U> for Twhere U: FromSample<T>,

source§

fn to_sample_(self) -> U

source§

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

§

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 Twhere U: TryFrom<T>,

§

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<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,