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, and start any PlayOptions::deferred
sounds queued until then. 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. Always
true natively; on the web, false until the first user gesture.
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.
Sourcepub fn play(&mut self, id: SoundId) -> Result<SoundHandle, AudioError>
pub fn play(&mut self, id: SoundId) -> Result<SoundHandle, AudioError>
Play a loaded sound once, at its own volume. The returned SoundHandle controls this
instance (volume, pause, stop, is_playing); dropping it lets the sound play out.
Fails with AudioError::NotStarted on the web until the player’s first key press,
click or touch (check Audio::is_started), so don’t ? it in update. For music
that should start as soon as it can, use Audio::play_with and
PlayOptions::deferred.
Sourcepub fn play_with(
&mut self,
id: SoundId,
options: PlayOptions,
) -> Result<SoundHandle, AudioError>
pub fn play_with( &mut self, id: SoundId, options: PlayOptions, ) -> Result<SoundHandle, AudioError>
Play a loaded sound with PlayOptions: looping, a start volume, and whether to
queue it until audio starts.
Sourcepub fn play_samples(
&mut self,
samples: &[f32],
sample_rate: u32,
) -> Result<SoundHandle, AudioError>
pub fn play_samples( &mut self, samples: &[f32], sample_rate: u32, ) -> Result<SoundHandle, AudioError>
Play mono PCM samples (-1.0..=1.0) directly, e.g. a buffer rendered by
[Synth]. The samples are duplicated to both channels. Fails like Audio::play
before audio has started.
Sourcepub fn play_samples_with(
&mut self,
samples: &[f32],
sample_rate: u32,
options: PlayOptions,
) -> Result<SoundHandle, AudioError>
pub fn play_samples_with( &mut self, samples: &[f32], sample_rate: u32, options: PlayOptions, ) -> Result<SoundHandle, AudioError>
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.