mpris-service

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

Usage no npm install needed!

<script type="module">
  import mprisService from 'https://cdn.skypack.dev/mpris-service';
</script>

README

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 = 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)