Skip to content
Node.js implementation for the MPRIS D-Bus Interface Specification to create a mediaplayer service
Branch: master
Clone or download
Latest commit ee50820 Apr 4, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples
src
test Update to dbus-next 0.5.1 Apr 4, 2019
.babelrc
.gitignore add documentation Mar 4, 2019
.npmignore
.tern-project
.travis.yml
LICENSE
README.md
gulpfile.js
jsdoc.conf add documentation Mar 4, 2019
package.json

README.md

mpris-service

Build Status

Node.js implementation for the MPRIS D-Bus Interface Specification to create a mediaplayer service.

Docs: http://specifications.freedesktop.org/mpris-spec/latest/

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:

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)
You can’t perform that action at this time.