[−][src]Crate soloud
soloud
Rust bindings for the soloud audio engine library.
Supported formats: wav, mp3, ogg. The library also comes with a speech synthesizer.
Still pre-alpha.
Usage
[dependencies]
soloud = "0.3"
Or to use the latest developments:
[dependencies]
soloud = { git = "https://!github.com/moalyousef/soloud-rs" }
To play audio:
use soloud::*; fn main() -> Result<(), Box<dyn std::error::Error>> { let mut sl = Soloud::default()?; let mut wav = audio::Wav::default(); wav.load(&std::path::Path::new("sample.wav"))?; sl.play(&wav); while sl.voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } wav.load(&std::path::Path::new("Recording.mp3"))?; sl.play(&wav); while sl.voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } Ok(()) }
To play speech:
use soloud::*; fn main() -> Result<(), Box<dyn std::error::Error>> { let mut sl = Soloud::default()?; let mut speech = audio::Speech::default(); speech.set_text("Hello World")?; sl.play(&speech); while sl.active_voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } speech.set_text("1 2 3")?; sl.play(&speech); while sl.active_voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } speech.set_text("Can you hear me?")?; sl.play(&speech); while sl.active_voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } Ok(()) }
To add a filter:
use soloud::*; fn main() -> Result<(), Box<dyn std::error::Error>> { let mut sl = Soloud::default()?; let mut wav = audio::Wav::default(); let mut filt = filter::EchoFilter::default(); filt.set_params(0.2)?; wav.load(&std::path::Path::new("sample.wav"))?; wav.set_filter(0, Some(&filt)); sl.play(&wav); while sl.voice_count() > 0 { std::thread::sleep(std::time::Duration::from_millis(100)); } Ok(()) }
Backends
The default backend is miniaudio, however Soloud supports several backends to varying degrees. To enable support of a certain backend, alsa for example:
[dependencies]
soloud = { version = "0.3", default-features = false, features = ["alsa"] }
This also assumes that those libraries headers are in your include path where CMake can find them, otherwise you can set it via the command line (posix):
ⓘ
$ export CXXFLAGS=-I /path/to/include
or for Windows:
ⓘ
$ set CXXFLAGS=-I C:\\path\\to\\include
Supported backends:
- miniaudio
- oss
- alsa
- sdl2
- sdl2-static
- portaudio
- openal
- xaudio2
- winmm
- wasapi
- opensles
- coreaudio
- jack
Re-exports
pub use audio::*; |
pub use filter::*; |
pub use prelude::*; |
Modules
audio | |
filter | |
prelude |
Structs
Handle | |
Soloud |