Amber box video controls through web sockets


Keywords
tv-manager, abox
License
MIT
Install
npm install abox-ws@1.0.2

Documentation

ABox-ws

Description

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.

Usage

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: js 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.

Example: js var player; AboxWs.initPlayer() .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.