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
.