npm install mplayerYou need mplayer installed on your system for it to work properly!
See the Changelog section for all breaking changes which may cause issues if you've updated the module.
npm install mplayer
Start off with instantiating the client
``javascript
var MPlayer = require('mplayer');
var player = new MPlayer();
`
You may want to pass in an object with options allowing for better debugging
verbose* (Boolean): true, false - if set to true all player events will be logged to consoletrue
debug* (Boolean): , false - log mplayer stdout, stderr streams directly to console, along with everything written to stdin stream
or passing additional options to the spawned mplayer instance
args* (String|Array): - list of additional parameters which will be passed to the command line mplayer instance (see mplayer manual for more details)
After this you will have access to all player methods and events.
The player instance uses node's native EventEmitter for events management.
function to set them for the currently running instanceoptions is an object with one or more key value pairs, determining which parameters should be set, see the last section
of slave mode documentation for the list of possible parameters and valuesExample:
`javascript
player.setOptions({
cache: 128,
cacheMin: 1
});
`* openFile(< String > file, [ Object ] options)
file is the location of the file you want to open either in your filesystem or on the weboptions is an object passed to the setOptions method right before opening the fileExample:
`javascript
player.openFile('/Users/noodny/Downloads/sample-video.avi');
`* openPlaylist(< String > file, [ Object ] options)
file is the location of the playlist file you want to open either in your filesystem or on the weboptions is an object passed to the setOptions method right before opening the fileExample:
`javascript
player.openPlaylist('http://www.radio.com/radio-stream.pls', {
cache: 128,
cacheMin: 1
});
`* play( )
* pause( )
* stop( )
* seek(< Number > seconds) - seek to a specific second
* seekPercent(< Number > percent ) - seek to a percent position of a file
* volume(< Number > percent ) - set volume to a given percentage
* mute( ) - toggle mute
* fullscreen( ) - toggle fullscreen
* hideSubtitles( )
* showSubtitles( )
* cycleSubtitles( ) - change to the next subtitles file in the file directory
* speedUpSubtitles( )
* slowDownSubtitles( )
* adjustSubtitles(< Number > seconds) - adjust the subtitles timing by +/- seconds
* adjustAudio(< Number > seconds) - adjust the audio timing by +/- seconds
Events
* ready - triggered only once when mplayer process is started
* time < Number > seconds - triggered every ~30ms
* start - triggered once an asset playback has started
* play - triggered when playback is resumed
* pause - triggered when playback is paused
* stop - triggered when an asset has finished playing
* status < Object > status - triggered whenever player status changes
The
status object has the following properties:
`javascript
{
muted: Boolean,
playing: Boolean,
volume: Number, // percent
duration: Number, // seconds
fullscreen: Boolean,
subtitles: Boolean,
filename: String,
title: String // currently playing stream title - valid only for radio streams
}
`Example
The following example will set up a player instance, open a radio stream and set it's volume to 50% after 1 second,
while logging the player status event output to the console:`
var MPlayer = require('mplayer');var player = new MPlayer();
player.on('start', console.log.bind(this, 'playback started'));
player.on('status', console.log);
player.openPlaylist('http://www.miastomuzyki.pl/n/rmfclassic.pls', {
cache: 128,
cacheMin: 1
});
setTimeout(player.volume.bind(player, 50), 1000);
`
Changelog
$3
* Allow for passing additional arguments to the spawned mplayer instance Thanks @efernandesng$3
* Add documentation
* Add quotes to the filename Thanks @hugo-agbonon$3
* Change the open method to openFile and openPlaylist
* Add verbose and debug` constructor options