3 releases
Uses new Rust 2024
| 0.1.3 | Oct 22, 2025 |
|---|---|
| 0.1.2 | Jul 6, 2025 |
| 0.1.1 |
|
| 0.1.0 | Jul 5, 2025 |
#1712 in Audio
53KB
522 lines
A Player for Rust using Egui
Playback files
https://github.com/user-attachments/assets/f2dc0ac1-1248-46c2-8619-f9e413a9c515
Interactive Transcription
Usage
First, add Player to your App variables. Insert the path to the file to be played in new()
New takes an enum called InputMode. This lets you play a file from a filepath (String) or with bytes (Vec<u8>)
struct MyApp {
player: Player,
}
impl Default for MyApp {
fn default() -> Self {
Self {
player: Player::from_path("file_path"),
}
}
}
For bytes, enter the following line instead:
player: Player::from_bytes(bytes),
For transcriptions: Set up an async block to allow for asynchronous tokio functions
fn main() {
let rt = Runtime::new().unwrap();
let _ = rt.block_on(async {
eframe::run_native(
"Player Example",
NativeOptions::default(),
Box::new(|_| Ok(Box::new(MyApp::default()))),
)
});
}
Now, under the update function, add this line to display the player:
self.player.ui(ui);
For faster transcription, run with the release flag
Examples
To play your own files, clone/download this repository and use:
cargo run --example main --release
Supported Audio Formats
| Format | Playback | Transcription |
|---|---|---|
| mp3 | ✅ | ✅ |
| m4a | ✅ | ✅ |
| wav | ✅ | ✅ |
| flac | ✅ | ❌ |
Supported Video Formats
Currently working on support
Credits
Dreamweaver.mp3 track in demo assets made by @romms921
Dependencies
~46–98MB
~1.5M SLoC