A simple command-line music player built in Rust, allowing basic audio playback and management.
- Play music from a specified directory
- List available tracks
- Basic playback controls:
- Play specific tracks
- Pause
- Resume
- Stop
- Exit
- Rust (latest stable version recommended)
- Cargo package manager
- Clone the repository
git clone https://github.com/parado-xy/rust-cli-music-player.git
cd rust-cli-music-player- Build the project
cargo build --release- Run the application
cargo run -- --dir /path/to/your/music/directoryplay <number>: Play a track by its list numberpause: Pause current playbackresume: Resume paused trackstop: Stop current playbacklist: Show available tracksexit: Close the application
# Start the player with your music directory
./musicplayer --dir ~/Music
# Show usage instructions
./musicplayer --how-toAnyone interested in contributing can focus on these potential enhancements:
-
Playlist Support
- Create and save playlists
- Implement playlist navigation
- Add shuffle and repeat modes
-
Advanced Playback Controls
- Volume adjustment
- Seeking within tracks
- Crossfading between songs
-
Audio Format Support
- Expand beyond current format limitations
- Add support for more audio codecs
- Implement metadata reading (artist, album, etc.)
-
Error Handling
- More robust error management
- Detailed error messages
- Graceful error recovery
-
Configuration
- Add config file support
- Persistent settings between sessions
- User-defined default directories
-
Performance Optimizations
- Improve audio loading speed
- Optimize memory usage
- Implement efficient file scanning
-
Terminal UI Enhancements
- Colorful output
- Progress bars for tracks
- Interactive track selection
-
Search Functionality
- Search tracks by name
- Filter tracks by metadata
-
Remote Playback
- Network streaming
- Integration with remote music libraries
-
Equalizer
- Basic audio equalization
- Sound profile management
-
Keyboard Shortcuts
- Global media key support
- Customizable key bindings
-
Plugins/Extensions
- Create a plugin system
- Allow community-driven feature additions
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
MIT
ojalla