pub struct Audio { /* private fields */ }Implementations§
Source§impl Audio
impl Audio
Sourcepub fn new() -> Result<Audio, Error>
pub fn new() -> Result<Audio, Error>
Create the audio subsystem. On native targets this opens the output device immediately;
on the web it defers that to Audio::start.
Sourcepub fn start(&mut self) -> Result<(), Error>
pub fn start(&mut self) -> Result<(), Error>
Open the output device if it isn’t open yet. Idempotent. On the web this must run
inside a user-gesture handler, otherwise the browser keeps the AudioContext muted.
Sourcepub fn is_started(&self) -> bool
pub fn is_started(&self) -> bool
Whether the output device is open, i.e. Audio::play can produce sound.
Sourcepub fn load_sound(&mut self, path: impl AsRef<Path>) -> Result<SoundId, Error>
pub fn load_sound(&mut self, path: impl AsRef<Path>) -> Result<SoundId, Error>
Load a sound file from disk. Not available on the web; use Audio::load_sound_bytes.
Sourcepub fn load_sound_bytes(
&mut self,
bytes: impl Into<Vec<u8>>,
) -> Result<SoundId, Error>
pub fn load_sound_bytes( &mut self, bytes: impl Into<Vec<u8>>, ) -> Result<SoundId, Error>
Decode an encoded sound file (wav, ogg, flac, mp3) held in memory.
pub fn play(&mut self, id: SoundId) -> Result<StaticSoundHandle, Error>
Sourcepub fn play_samples(
&mut self,
samples: &[f32],
sample_rate: u32,
) -> Result<StaticSoundHandle, Error>
pub fn play_samples( &mut self, samples: &[f32], sample_rate: u32, ) -> Result<StaticSoundHandle, Error>
Play mono PCM samples (-1.0..=1.0) directly, e.g. a buffer rendered by
[Synth]. The samples are duplicated to both channels.
Sourcepub fn set_master_volume(&mut self, volume: f32)
pub fn set_master_volume(&mut self, volume: f32)
Master volume on the default main track, as a linear amplitude
(1.0 is unity gain, 0.0 is silence). Converted to decibels for kira.
Auto Trait Implementations§
impl !Freeze for Audio
impl !RefUnwindSafe for Audio
impl !UnwindSafe for Audio
impl Send for Audio
impl Sync for Audio
impl Unpin for Audio
impl UnsafeUnpin for Audio
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.