mpris-service
mpris-service copied to clipboard
Node.js implementation for the MPRIS D-Bus Interface Specification to create a mediaplayer service
mpris-service
Node.js implementation for the MPRIS D-Bus Interface Specification to create a mediaplayer service.
var Player = require('mpris-service');
var player = Player({
name: 'nodejs',
identity: 'Node.js media player',
supportedUriSchemes: ['file'],
supportedMimeTypes: ['audio/mpeg', 'application/ogg'],
supportedInterfaces: ['player']
});
Implemented interfaces:
-
org.mpris.MediaPlayer2
-
org.mpris.MediaPlayer2.Player
-
org.mpris.MediaPlayer2.TrackList
-
org.mpris.MediaPlayer2.Playlists
Examples are available in examples/
.
Default interface
player.on('quit', function () {
process.exit();
});
Events:
-
raise
-
quit
-
fullscreen
Properties:
-
identity
-
name
-
supportedUriSchemes
-
supportedMimeTypes
-
desktopEntry
Player
// See http://www.freedesktop.org/wiki/Specifications/mpris-spec/metadata/
player.metadata = {
'mpris:trackid': player.objectPath('track/0'),
'mpris:length': 60 * 1000 * 1000, // In microseconds
'mpris:artUrl': 'https://pbs.twimg.com/profile_images/378800000822867536/3f5a00acf72df93528b6bb7cd0a4fd0c.jpeg',
'xesam:title': 'Best song',
'xesam:album': 'Best album',
'xesam:artist': ['Best singer']
};
player.playbackStatus = 'Playing';
See examples/player.js
.
Events:
-
next
-
previous
-
pause
-
playpause
-
stop
-
play
-
seek
-
open
-
loopStatus
-
rate
-
shuffle
-
volume
Properties:
-
playbackStatus
-
loopStatus
-
rate
-
shuffle
-
volume
-
metadata
-
minimumRate
-
maximumRate
-
canGoNext
-
canGoPrevious
-
canPlay
-
canPause
-
canSeek
-
canControl
Methods:
-
seeked(position)
-
getPosition()
(should be overridden to return the current position)
TrackList
Events:
-
addTrack
-
removeTrack
-
goTo
Properties:
-
tracks
-
canEditTracks
Methods:
-
addTrack(track)
-
removeTrack(trackId)
Playlists
Events:
-
activatePlaylist
Properties:
-
playlists
-
activePlaylist
Methods:
-
setPlaylists(playlists)
-
setActivePlaylist(playlistId)