Trait bevy::prelude::Decodable

source ·
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§

source

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.

source

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§

source

fn decoder(&self) -> Self::Decoder

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

Implementors§