Tauri version of the minimalist music player
Nothing fancy, as the name implies
- Support for MP3, FLAC, WAV, AAC, OGG, M4B, ...
- Neumorphic UI design
- Integrated explorer with search
- Media session integration
- Keyboard shortcuts
- Space: Play/Pause
- 0: Seek to start
- ← / →: Seek jump by 10 seconds
- CTRL + ← / CTRL + →: Play next/prev
- CTRL + F: Search
- Install NodeJS
- Install Rust by following the instructions here
- Then, run the commmand
npx tauri dev
Run the command npx tauri build
Run npx tauri icon
(with an app-icon.png
at the root) to generate app icons
I couldn't use webworkers for doing the visualization because they don't have access to the AudioContext API And since I'm already storing the metadata, it just didn't matter to just move the music-metadata call to a webworker
jsmediatags is at least twice as slow as music metadata browser
// #1
musicMetadata
.fetchFromUrl("https://asset.localhost/D%3A%5CMusic%20%2B%20Audiobooks%5CMISC%5CBOOKS%5CAd%20Astra%5C01%20-%20Intro%20%2B%20Lady%20Be%20Good.mp3")
.then(res => console.log(res))
// #2
jsmediatags.Config.setDisallowedXhrHeaders(['If-Modified-Since', 'Range'])
jsmediatags.read("https://asset.localhost/D%3A%5CMusic%20%2B%20Audiobooks%5CMISC%5CBOOKS%5CAd%20Astra%5C01%20-%20Intro%20%2B%20Lady%20Be%20Good.mp3", {
onSuccess: function(tag) { console.log(tag); },
onError: function(error) { console.log(error); }
});