1.5.3 • Published 4 years ago

media-player-controller v1.5.3

Weekly downloads
22
License
MIT
Repository
github
Last release
4 years ago

media-player-controller

License npm Downloads Donate Donate

Spawn media player app and control playback. Also allows reading player state through socket or web connection.

Supported Media Players

PlayerLinuxWinMacOS
mpvyesno?
vlcyesyes?

? - untested (feedback is welcome)

Player config

var player = new PlayerController({
  app: 'mpv',                         // Media player name to use (mpv/vlc)
  args: [],                           // Player command line args (array of strings)
  cwd: null,                          // Current working dir for media player spawn
  media: '/path/to/video.mp4',        // Media to load on player launch (required)
  ipcPath: '/tmp/media-ctl-socket',   // Path to socket connection file (mpv only)
  httpPort: 9280,                     // HTTP port for local communication (vlc only)
  httpPass: null,                     // HTTP login password (vlc only, defaults to player name)
  detached: false                     // Spawn player as detached process
});

Player functions

Each playback controlling function have an optional callback with eventual error. They are executed asynchronously by default and can be used after playback-started event.

.launch()                    // Launch media player
.quit()                      // Stop media player process

.play()                      // Resume playback
.pause()                     // Pause playback
.cyclePause()                // Cycle play/pause
.load(mediaPath)             // Load new media file (without closing player)
.seek(position)              // Seek to position (value in seconds)
.setVolume(value)            // Adjust player volume (value 0-1)
.setSpeed(value)             // Adjust playback speed (normal: 1.0)
.setRepeat(isEnabled)        // Repeat playback (true or false)
.cycleVideo()                // Switch active video track
.cycleAudio()                // Switch active audio track
.cycleSubs()                 // Switch active subtitle track
.addSubs(subsPath)           // Add subtitles to currently playing video
.setFullscreen(isEnabled)    // Enable or disable fullscreen (true or false)
.cycleFullscreen()           // Toggle fullscreen on/off
.keepOpen(isEnabled)         // Keep player open after playback (true or false)

.command([args])             // Custom command for IPC/HTTP (array of args)

Please note that some commands are not yet implemented for every player (most of them are). If a command is not available for currently used player, callback will return error with a message saying so.

Available events

.on('app-launch')            // Emited on media player app launch
.on('playback-started')      // Playback started and player can now be controlled
.on('playback', data)        // Data object with current playback event
.on('app-exit', code)        // Exit code emited on media player app close

Usage Example

const PlayerController = require('media-player-controller');

var player = new PlayerController({
  app: 'mpv',
  args: ['--fullscreen'],
  media: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4'
});

player.on('playback', console.log);

player.on('playback-started', () => {
  console.log('Playback started. Player can now be controlled');
});

player.on('app-exit', (code) => {
  console.log(`Media player closed. Exit code: ${code}`);
});

player.launch(err => {
  if(err) return console.error(err.message);
  console.log('Media player launched');
});

Donation

If you like my work please support it by buying me a cup of coffee :-)

PayPal

1.5.3

4 years ago

1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.2

4 years ago

1.2.0

4 years ago

1.2.1

4 years ago

1.1.5

4 years ago

1.1.4

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.1.1

4 years ago

1.1.0

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.4.3

5 years ago

0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago