# raplay
Library for playing audio.
The library is very new and not much tested.
## Features
- Play(Resume)/Pause
- Callback when audio ends
- Callback for errors
- Volume
- Seeking
- Get audio position and length
- Fade-in/fade-out on play/pause
## Supported formats
All the decoding is done by
[symphonia](https://github.com/pdeljanov/Symphonia/tree/master), so the
supported formats are the same as symphonia.
## Examples
### Play a sine wave
```rust
use raplay::{Sink, source::SineSource};
let sink = Sink::default(); // get the default output
let src = SineSource::new(1000.); // create 1000Hz sine source
sink.load(src, true)?; // play the sine wave
```
### Play a mp3 file
```rust
use std::fs::File;
use raplay::{Sink, source::Symph};
let sink = Sink::default(); // get the default output
let file = File::open("music.mp3")?; // open the mp3 file
let src = Symph::try_new(file, &Default::default())?; // create a symphonia decoder source
sink.load(src, true)?; // play the mp3 file
```
## Known issues
- If the device doesn't support the required sample rate, aliasing may occur
## How to get it
It is available on [crates.io](https://crates.io/crates/raplay)
## Links
- **Author:** [BonnyAD9](https://github.com/BonnyAD9)
- **GitHub repository:** [BonnyAD/raplay](https://github.com/BonnyAD9/raplay)
- **Package:** [crates.io](https://crates.io/crates/raplay)
- **Documentation:** [docs.rs](https://docs.rs/raplay/latest/raplay/)
- **My Website:** [bonnyad9.github.io](https://bonnyad9.github.io/)