pub trait Sample: Sized {
fn write<W: Write>(self, writer: &mut W, bits: u16) -> Result<()>;
fn write_padded<W: Write>(
self,
writer: &mut W,
bits: u16,
byte_width: u16
) -> Result<()>;
fn read<R: Read>(
reader: &mut R,
_: SampleFormat,
bytes: u16,
bits: u16
) -> Result<Self>;
fn as_i16(self) -> i16;
}Expand description
A type that can be used to represent audio samples.
Via this trait, decoding can be generic over i8, i16, i32 and f32.
All integer formats with bit depths up to 32 bits per sample can be decoded
into i32, but it takes up more memory. If you know beforehand that you
will be reading a file with 16 bits per sample, then decoding into an i16
will be sufficient.
Required Methods
sourcefn write<W: Write>(self, writer: &mut W, bits: u16) -> Result<()>
fn write<W: Write>(self, writer: &mut W, bits: u16) -> Result<()>
Writes the audio sample to the WAVE data chunk.
sourcefn write_padded<W: Write>(
self,
writer: &mut W,
bits: u16,
byte_width: u16
) -> Result<()>
fn write_padded<W: Write>(
self,
writer: &mut W,
bits: u16,
byte_width: u16
) -> Result<()>
Writes the audio sample to the WAVE data chunk, zero padding the size of
the written sample out to byte_width.