A simple media player for Windows and Linux made in Python using the PyQt5 module. It is a desktop application which can play songs and also display its metadata similar to any other media playback software.
It uses Windows Media Foundation in Windows platform, so it can play most of the supported audio formats such as mp3, wav, aac, wma, m4a, ac3, amr, ts, flac, .etc.
Some minor issues regarding some special formats can arise, but its all up to the media plugin that the host Operating System uses. This application is totally based on the host OS, so results can vary depending on the type and version of the host OS.
- Background Playback.
- Wide range of supported audio formats
- Automatic Playback when idle.
- Drag and drop multiple files at once.
- Media Controls - Next song, Previous song.
- Playback Controls - Play/Pause, Stop, Rewind/Fast-Forward, Skip back-forth.
- Output Controls - Mute volume, Change Playback Volume.
- PlayList Features - Repeat All, Repeat Queue, Repeat None, Repeat One, Shuffle All.
- Display Audio Info - Album Art, Title, Artist, Year, Sample Rate, Duration, Bitrate.
- Elapsed/Remaining Time Display.
- Realtime Progress Seek Bar.
- Supports keyboard shortcuts for controlling the app.
- Open audio files from within the app.
- Export/import Playlist files.
- Open Files - Alt + O
- Play/Pause - Space
- Stop Playback - Alt + X
- Previous Song - Alt + P
- Next Song - Alt + N
- Toggle Mute - Alt + M
- Toggle Shuffle - Alt + S
- Playback type - Alt + R
- Rewind (-2s) - Ctrl + Alt + P
- Fast Forward (+2s) - Ctrl + Alt + N
Shortcuts can be used only when app is in focus
- Clone the repository on the local machine.
- Run PyMediaPlayer.py file.
- Drag and drop Audio only files onto the Main App Window, or click on the Open button on the controls panel at the bottom.
- Playback will start automatically from the first file.
- Use the control buttons to control the app's capabilities.
- Play any song by clicking on the song in Playlist view.
- Shortcuts can be used to control the app.
- Clone the repository on the local machine.
- Open songs_adder.py in an IDE.
- Edit song_path variable value to your own music directory.
- You can read all the comments in the above file and take required decisions.
- After doing the changes, run the above file.
- If the App is found running already, it will start adding songs one-by-one from the specified song_path to the App's Playlist. If the App wasn't running, it will start a new instance and add all songs to that new instance.
- It will take some time for the script to complete, depending on the number of songs present in the specified song_path.
- Drag n Drop, and all other functionalities will work as normal.
This is an individual-only project. Any contribution to this project will be highly appreciated. There might be some issues regarding Linux/macOS. So, anyone interested is welcomed. Any bug fix, any edits, any new ideas or any issues are welcomed. Please read CONTRIBUTING.md for more info on contribution.