pub trait Decodable: Send + Sync + 'static {
type DecoderItem: Sample + Send + Sync;
type Decoder: Source<Item = Self::DecoderItem> + Send + Iterator;
// Required method
fn decoder(&self) -> Self::Decoder;
}
Expand description
A type implementing this trait can be converted to a rodio::Source
type.
It must be Send
and Sync
, and usually implements Asset
so needs to be TypeUuid
,
in order to be registered.
Types that implement this trait usually contain raw sound data that can be converted into an iterator of samples.
This trait is implemented for AudioSource
.
Check the example audio/decodable
for how to implement this trait on a custom type.
Required Associated Types§
type DecoderItem: Sample + Send + Sync
type DecoderItem: Sample + Send + Sync
The type of the audio samples.
Usually a u16
, i16
or f32
, as those implement rodio::Sample
.
Other types can implement the rodio::Sample
trait as well.
type Decoder: Source<Item = Self::DecoderItem> + Send + Iterator
type Decoder: Source<Item = Self::DecoderItem> + Send + Iterator
The type of the iterator of the audio samples,
which iterates over samples of type Self::DecoderItem
.
Must be a rodio::Source
so that it can provide information on the audio it is iterating over.
Required Methods§
fn decoder(&self) -> Self::Decoder
fn decoder(&self) -> Self::Decoder
Build and return a Self::Decoder
of the implementing type