raplay

Crates.ioraplay
lib.rsraplay
version0.4.3
created_at2023-07-30 18:11:30.407593+00
updated_at2025-09-01 08:33:06.338761+00
descriptionLibrary for playing audio
homepagehttps://github.com/BonnyAD9/raplay
repositoryhttps://github.com/BonnyAD9/raplay
max_upload_size
id930146
size151,645
Jakub Antonín Štigler (BonnyAD9)

documentation

README

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, so the supported formats are the same as symphonia.

Examples

Play a sine wave

use raplay::{Sink, source::Sine};

let mut sink = Sink::default(); // Get the default output
let src = Sine::new(1000.); // Create 1000Hz sine source
sink.load(Box::new(src), true)?; // Play the sine wave
# Ok::<(), raplay::Error>(())

Play a mp3 file

use std::fs::File;
use raplay::{Sink, source::Symph};

let mut sink = Sink::default(); // Get the default output
let file = File::open("music.mp3").unwrap(); // Open the mp3 file
let src = Symph::try_new(file, &Default::default())?; // Create a symphonia
                                                      // decoder source
sink.load(Box::new(src), true); // Play the mp3 file
# Ok::<(), raplay::Error>(())

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

Links

Commit count: 103

cargo fmt