mplayer-wrapper
Let an mplayer
instance play media.
Note: mpv
is a fork of mplayer
and much nicer to work with. You might want to use mpv-wrapper
instead.
Installing
npm install mplayer-wrapper
Usage
const createPlayer = require('mplayer-wrapper')
const player = createPlayer()
player.queue('path/to/audio-1.mp3')
player.queue('path/to/audio-2.ogg')
player.queue('http://example.org/audio-3.ogg')
player.on('time_pos', (val) => {
console.log('track progress is', val)
})
setInterval(() => {
player.getProps(['time_pos'])
}, 2 * 1000)
player.on('metadata', console.log)
player.on('track-change', () => player.getProps(['metadata']))
API
Methods
-
player.exec(command, args = [])
: Send a command to mplayer. See the list. -
player.getProps(props)
: Request values for one or more props. Runmplayer -list-properties
for a list. -
player.play(fileOrUrl)
: Discard the current queue, play this file. -
player.queue(fileOrUrl)
: Add this file to the queue. -
player.next()
: Jump to the next file in the queue. -
player.previous()
: Jump to the previous file in the queue. -
player.playPause()
: Toggle pause. -
player.seek(pos)
: Seek to a position in seconds. Prepend+
/-
for relative seeking. -
player.seekPercent(pos)
: Seek to a position in percent of the file. E.g.30
. -
player.setVolume(amount)
: Set the volume.0
is silent,100
is maximum. -
player.stop
: Stop playing. -
player.close
: Stop playing, close the mplayer instance.
Events
-
feed.on('prop', name, val)
: The value for a prop has been requested (e.g. usinggetProps
), and we now know the value. -
feed.on(propName, val)
: A shorthand for theprop
event. -
feed.on('track-change')
: A new track/file is playing now.
Known Issues
-
mplayer
doesn't print metadata properly (e.g. Unicode,,
and other special characters), thereforemplayer-wrapper
doesn't expose it properly.
Related
-
mpv-wrapper
– Let anmpv
instance play media.
Contributing
If you have a question or have difficulties using mplayer-wrapper
, please double-check your code and setup first. If you think you have found a bug or want to propose a feature, refer to the issues page.