An interface between nodejs and the omxplayer via dbus.
var omx = require('omx-interface');
var options = {
audioOutput:'hdmi',
blackBackground:true,
disableKeys:true,
disableOnScreenDisplay:true
};
omx.open('test.mp4',options); //open file
omx.onProgress(function(track){ //subscribe for track updates (every second while not paused for now)
console.log(track.position);
console.log(track.duration);
});
omx.setPosition(60*5); //set position to 5 minutes into the movie
var omx = require('omx-interface');
omx.init_remote({port:8000}); //streams a remote on localhost:8000
The "omx-interface" package comes with an optional remote for your mobile phone. In the remote app you can browse files and control the player over your local network. Unlike other OMX middleware, GET and SET methods are supported rather than just emulating keypresses. So the current time, duration and volume are available!
Since the remote is more of a capability showcase it is optional and has to be initiated before use. calling node example.js on your pi will showcase this.
The remote can be located from any browser on the local network. The webpage can be added to the home screen for a more app like feeling. The remote address is logged to the console after initialization.
audioOutput: 'hdmi' | 'local' | 'both' | 'alsa'
blackBackground: boolean, true by default
disableKeys: boolean, false by default (true when using remote)
disableOnScreenDisplay: boolean, false by default (true when using remote)
disableGhostbox: boolean, false by default
subtitlePath: string, '' or false disables subtitles as is done by default
omx.getCurrentDuration();
omx.getCurrentPosition();
This function can be called many times per second without bothering the DBus since the position is extrapolated from the short term cached paying status.
omx.getCurrentVolume();
omx.seek(seconds);
omx.setPosition(seconds);
omx.stop();
omx.quit();
omx.pause();
Note: Unlike hitting the spacebar, this method pauses only when playing and remains paused when allready paused.
omx.play();
Note: Unlike hitting the spacebar, this method starts playing only when paused and remains playing when allready playing.
omx.togglePlay();
Note: Same function as hitting spacebar in omxplayer.
omx.volumeUp();
Note: Same function as "+" key in omxplayer.
omx.volumeDown();
Note: Same function as "-" key in omxplayer.
omx.setVolume(vol);