pub struct AudioManager<B = CpalBackend>where
B: Backend,{ /* private fields */ }
Expand description
Controls audio from gameplay code.
Implementations§
Source§impl<B> AudioManager<B>where
B: Backend,
impl<B> AudioManager<B>where
B: Backend,
Sourcepub fn new(
settings: AudioManagerSettings<B>,
) -> Result<AudioManager<B>, <B as Backend>::Error>
pub fn new( settings: AudioManagerSettings<B>, ) -> Result<AudioManager<B>, <B as Backend>::Error>
Creates a new AudioManager
.
§Examples
Create an AudioManager
using the DefaultBackend
and the
default settings:
use kira::manager::{AudioManager, AudioManagerSettings, backend::DefaultBackend};
let audio_manager = AudioManager::<DefaultBackend>::new(AudioManagerSettings::default())?;
Create an AudioManager
with a reverb effect on the main mixer track:
use kira::{
manager::{AudioManager, AudioManagerSettings, backend::DefaultBackend},
track::{TrackBuilder, effect::reverb::ReverbBuilder},
};
let audio_manager = AudioManager::<DefaultBackend>::new(AudioManagerSettings {
main_track_builder: TrackBuilder::new().with_effect(ReverbBuilder::new()),
..Default::default()
})?;
Sourcepub fn play<D>(
&mut self,
sound_data: D,
) -> Result<<D as SoundData>::Handle, PlaySoundError<<D as SoundData>::Error>>where
D: SoundData,
pub fn play<D>(
&mut self,
sound_data: D,
) -> Result<<D as SoundData>::Handle, PlaySoundError<<D as SoundData>::Error>>where
D: SoundData,
Plays a sound.
§Examples
use kira::sound::static_sound::{StaticSoundData, StaticSoundSettings};
let sound_data = StaticSoundData::from_file("sound.ogg", StaticSoundSettings::default())?;
manager.play(sound_data)?;
Sourcepub fn add_sub_track(
&mut self,
builder: TrackBuilder,
) -> Result<TrackHandle, AddSubTrackError>
pub fn add_sub_track( &mut self, builder: TrackBuilder, ) -> Result<TrackHandle, AddSubTrackError>
Creates a mixer sub-track.
Sourcepub fn add_clock(
&mut self,
speed: impl Into<Value<ClockSpeed>>,
) -> Result<ClockHandle, AddClockError>
pub fn add_clock( &mut self, speed: impl Into<Value<ClockSpeed>>, ) -> Result<ClockHandle, AddClockError>
Sourcepub fn add_spatial_scene(
&mut self,
settings: SpatialSceneSettings,
) -> Result<SpatialSceneHandle, AddSpatialSceneError>
pub fn add_spatial_scene( &mut self, settings: SpatialSceneSettings, ) -> Result<SpatialSceneHandle, AddSpatialSceneError>
Creates a spatial scene.
Sourcepub fn add_modulator<Builder>(
&mut self,
builder: Builder,
) -> Result<<Builder as ModulatorBuilder>::Handle, AddModulatorError>where
Builder: ModulatorBuilder,
pub fn add_modulator<Builder>(
&mut self,
builder: Builder,
) -> Result<<Builder as ModulatorBuilder>::Handle, AddModulatorError>where
Builder: ModulatorBuilder,
Creates a modulator.
§Examples
use kira::modulator::lfo::LfoBuilder;
let modulator = manager.add_modulator(LfoBuilder::new())?;
Sourcepub fn pause(&self, fade_out_tween: Tween) -> Result<(), CommandError>
pub fn pause(&self, fade_out_tween: Tween) -> Result<(), CommandError>
Fades out and pauses all audio.
§Examples
Pause audio immediately:
use kira::tween::Tween;
manager.pause(Tween::default())?;
Fade out audio for 3 seconds and then pause:
use kira::tween::Tween;
use std::time::Duration;
manager.pause(Tween {
duration: Duration::from_secs(3),
..Default::default()
})?;
Sourcepub fn resume(&self, fade_out_tween: Tween) -> Result<(), CommandError>
pub fn resume(&self, fade_out_tween: Tween) -> Result<(), CommandError>
Resumes and fades in all audio.
§Examples
Resume audio with a 3-second fade-in:
use kira::tween::Tween;
use std::time::Duration;
manager.resume(Tween {
duration: Duration::from_secs(3),
..Default::default()
})?;
Sourcepub fn main_track(&self) -> TrackHandle
pub fn main_track(&self) -> TrackHandle
Returns a handle to the main mixer track.
§Examples
Use the main track handle to adjust the volume of all audio:
use kira::tween::Tween;
manager.main_track().set_volume(0.5, Tween::default())?;
Sourcepub fn state(&self) -> MainPlaybackState
pub fn state(&self) -> MainPlaybackState
Returns the current playback state of the audio.
Sourcepub fn sound_capacity(&self) -> usize
pub fn sound_capacity(&self) -> usize
Returns the number of sounds that can be loaded at a time.
Sourcepub fn sub_track_capacity(&self) -> usize
pub fn sub_track_capacity(&self) -> usize
Returns the number of mixer sub-tracks that can exist at a time.
Sourcepub fn clock_capacity(&self) -> usize
pub fn clock_capacity(&self) -> usize
Returns the number of clocks that can exist at a time.
Sourcepub fn spatial_scene_capacity(&self) -> usize
pub fn spatial_scene_capacity(&self) -> usize
Returns the number of spatial scenes that can exist at a time.
Sourcepub fn modulator_capacity(&self) -> usize
pub fn modulator_capacity(&self) -> usize
Returns the number of modulators that can exist at a time.
Sourcepub fn num_sounds(&self) -> usize
pub fn num_sounds(&self) -> usize
Returns the number of sounds that are currently loaded.
Sourcepub fn num_sub_tracks(&self) -> usize
pub fn num_sub_tracks(&self) -> usize
Returns the number of mixer sub-tracks that currently exist.
Sourcepub fn num_clocks(&self) -> usize
pub fn num_clocks(&self) -> usize
Returns the number of clocks that currently exist.
Sourcepub fn num_spatial_scenes(&self) -> usize
pub fn num_spatial_scenes(&self) -> usize
Returns the number of spatial scenes that currently exist.
Sourcepub fn num_modulators(&self) -> usize
pub fn num_modulators(&self) -> usize
Returns the number of modulators that currently exist.
Sourcepub fn backend_mut(&mut self) -> &mut B
pub fn backend_mut(&mut self) -> &mut B
Returns a mutable reference to this manager’s backend.
Auto Trait Implementations§
impl<B = CpalBackend> !Freeze for AudioManager<B>
impl<B> RefUnwindSafe for AudioManager<B>where
B: RefUnwindSafe,
impl<B> Send for AudioManager<B>where
B: Send,
impl<B> Sync for AudioManager<B>where
B: Sync,
impl<B> Unpin for AudioManager<B>where
B: Unpin,
impl<B> UnwindSafe for AudioManager<B>where
B: UnwindSafe,
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
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more