Trait bevy::audio::Decodable

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 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 decodable for how to implement this trait on a custom type.

Required Associated Types§

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

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

Build and return a Self::Decoder of the implementing type



impl Decodable for AudioSource


type DecoderItem = <Decoder<Cursor<AudioSource>> as Iterator>::Item


type Decoder = Decoder<Cursor<AudioSource>>


impl Decodable for Pitch


type DecoderItem = <SineWave as Iterator>::Item


type Decoder = TakeDuration<SineWave>