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.
npm install mplayer-wrapperconst 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']))player.exec(command, args = []): Send a command to mplayer. See the list.player.getProps(props): Request values for one or more props. Runmplayer -list-propertiesfor 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.0is silent,100is maximum.player.stop: Stop playing.player.close: Stop playing, close the mplayer instance.
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 thepropevent.feed.on('track-change'): A new track/file is playing now.
mplayerdoesn't print metadata properly (e.g. Unicode,,and other special characters), thereforemplayer-wrapperdoesn't expose it properly.
mpv-wrapper– Let anmpvinstance play media.
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.