Amber box video controls through web sockets


2.3.05 years ago5 years agoMinified + gzip package size for abox-ws in KB




ABox-ws is used for controlling video playback through web sockets. It only works in an STB environment, where the sockets are available. This module supports AMD and CommonJS module loaders.


Video sizing

For video sizing use the setVideoSize function.

It uses 4 parameters as follows:

  1. x - horizontal offset in pixels
  2. y - vertical offset in pixels
  3. width - width of the video display in pixels
  4. height - height of the video display in pixels All 4 parameters must be provided in an integer format (no floating points)

The following example will display video 200 pixels from left, 50 from top and resized to a resolution of 800x200:

AboxWs.setVideoSize(200, 50, 800, 200)
  .then(function() { console.log('size set'); })
  .catch(function(error) { console.error(error); });

Video playing

To play available videos a player must be initialized. Using initPlayer will start a new player and return a promise. The promise returns an object which contains play and clear functions.

play function is a promise, which throws an error on playback failure and returns on playback start. It accepts these parameters:

  1. url - the location of the video
  2. volume - the volume of the video (-1 to leave default), defaults to -1
  3. callback - a callback function called once the video finishes or when another video is called

clear function stops the player from playing and executes stop callbacks. It is useful to cancel playback.


var player;
  .then(function(initializedPlayer) {
    player = initializedPlayer;
    player.play('usb://video.mp4', -1, function() { console.log('Video finished playing.'); })
      .then(function() { console.log('playback has started'); })
      .catch(function() { console.error('error playing video'); });
  .catch(function(error) { console.error(error); });

Note: on error the player will automatically retry to play the video.

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.