Music player submodule for LyricsX.
Unified API for music players.
- Apple Music (iTunes)
- Spotify
- Vox
- Audirvana
- Swinsian
- Music
- Spotify (see #5)
Read me before using MPRIS
- playerctl (could be installed by package manager)
A running
GMainLoop
is required to automatically update the player and playback status for MPRIS. If not, you can run one by:GRunLoop.main.run()or in other threads:
Thread.detachNewThread { GRunLoop.main.run() }
- SystemMedia: System-wide Now Playing
- macOS
- iOS (jailbroken device only) (test needed)
- Windows (via SMTC)
- Spotify (Web API)
- Agent: Delegate events to another player.
- Now Playing: Automatically choose a playing player from given players.
- MPRIS Now Playing: Just like Now Playing, but automatically find available MPRIS players.
- Virtual: A virtual player that allows you to manipulate its state.
- Remote: Sync player state from other devices.
let player = MusicPlayers.Scriptable(name: .appleMusic)!
let track = player.currentTrack.title
if player.playbackState.isPlaying {
player.skipToNextItem()
}
MusicPlayer is part of LyricsX and licensed under MPL 2.0. See the LICENSE file.