Skip to content

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

License

Notifications You must be signed in to change notification settings

ciderapp/mpris-service

 
 

Repository files navigation

mpris-service

Build Status

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

Documentation

Chat

var Player = require('mpris-service');

var player = new 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)

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 97.9%
  • Dockerfile 1.5%
  • Makefile 0.6%