[−][src]Module sdl2::audio
Audio Functions
Example
use sdl2::audio::{AudioCallback, AudioSpecDesired}; use std::time::Duration; struct SquareWave { phase_inc: f32, phase: f32, volume: f32 } impl AudioCallback for SquareWave { type Channel = f32; fn callback(&mut self, out: &mut [f32]) { // Generate a square wave for x in out.iter_mut() { *x = if self.phase <= 0.5 { self.volume } else { -self.volume }; self.phase = (self.phase + self.phase_inc) % 1.0; } } } let sdl_context = sdl2::init().unwrap(); let audio_subsystem = sdl_context.audio().unwrap(); let desired_spec = AudioSpecDesired { freq: Some(44100), channels: Some(1), // mono samples: None // default sample size }; let device = audio_subsystem.open_playback(None, &desired_spec, |spec| { // initialize the audio callback SquareWave { phase_inc: 440.0 / spec.freq as f32, phase: 0.0, volume: 0.25 } }).unwrap(); // Start playback device.resume(); // Play for 2 seconds std::thread::sleep(Duration::from_millis(2000));
Structs
AudioCVT | |
AudioDevice | Wraps |
AudioDeviceLockGuard | Similar to |
AudioQueue | Wraps |
AudioSpec | |
AudioSpecDesired | |
AudioSpecWAV | |
DriverIterator |
Enums
AudioFormat | |
AudioStatus |
Traits
AudioCallback | |
AudioFormatNum | A phantom type for retrieving the |
Functions
drivers | Gets an iterator of all audio drivers compiled into the SDL2 library. |