Struct comfy_wgpu::AudioManager
pub struct AudioManager<B = CpalBackend>where
B: Backend,{ /* private fields */ }Expand description
Controls audio from gameplay code.
Implementations§
§impl<B> AudioManager<B>where
B: Backend,
impl<B> AudioManager<B>where B: Backend,
pub 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()
})?;pub 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)?;pub 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.
pub 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>
pub 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.
pub 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())?;pub 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()
})?;pub 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()
})?;pub 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())?;pub fn state(&self) -> MainPlaybackState
pub fn state(&self) -> MainPlaybackState
Returns the current playback state of the audio.
pub fn sound_capacity(&self) -> usize
pub fn sound_capacity(&self) -> usize
Returns the number of sounds that can be loaded at a time.
pub 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.
pub fn clock_capacity(&self) -> usize
pub fn clock_capacity(&self) -> usize
Returns the number of clocks that can exist at a time.
pub 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.
pub fn modulator_capacity(&self) -> usize
pub fn modulator_capacity(&self) -> usize
Returns the number of modulators that can exist at a time.
pub fn num_sounds(&self) -> usize
pub fn num_sounds(&self) -> usize
Returns the number of sounds that are currently loaded.
pub fn num_sub_tracks(&self) -> usize
pub fn num_sub_tracks(&self) -> usize
Returns the number of mixer sub-tracks that currently exist.
pub fn num_clocks(&self) -> usize
pub fn num_clocks(&self) -> usize
Returns the number of clocks that currently exist.
pub fn num_spatial_scenes(&self) -> usize
pub fn num_spatial_scenes(&self) -> usize
Returns the number of spatial scenes that currently exist.
pub fn num_modulators(&self) -> usize
pub fn num_modulators(&self) -> usize
Returns the number of modulators that currently exist.
pub fn backend_mut(&mut self) -> &mut B
pub fn backend_mut(&mut self) -> &mut B
Returns a mutable reference to this manager’s backend.