Skip to content

sighthoundinc/react-video-js-player

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 

Repository files navigation

react-video-js-player

This is NOT an npm module any longer!

Originally forked from /~https://github.com/karan101292/react-video-js-player.

Converted (roughly) to TypeScript, to be included directly into projects. Contains additional features, fixes, etc.

This is a soft-package and is meant to be included directly into project. There is no package.json, so you will need to make sure your main project includes the following packages:

  • video-js@^7.6
  • react

Usage

import React from 'react';
import VideoPlayer from 'pkg/react-video-js-player';

class VideoApp extends React.Component {
    player = {}
    state = {
        video: {
            src: "http://www.example.com/path/to/video.mp4",
            poster: "http://www.example.com/path/to/video_poster.jpg"
        }
    }

    onPlayerReady(player){
        console.log("Player is ready: ", player);
        this.player = player;
    }

    onVideoPlay(duration){
        console.log("Video played at: ", duration);
    }

    onVideoPause(duration){
        console.log("Video paused at: ", duration);
    }

    onVideoTimeUpdate(duration){
        console.log("Time updated: ", duration);
    }

    onVideoSeeking(duration){
        console.log("Video seeking: ", duration);
    }

    onVideoSeeked(from, to){
        console.log(`Video seeked from ${from} to ${to}`);
    }

    onVideoEnd(){
        console.log("Video ended");
    }

    render() {
        return (
            <div>
                <VideoPlayer
                    controls={true}
                    src={this.state.video.src}
                    poster={this.state.video.poster}
                    width="720"
                    height="420"
                    onReady={this.onPlayerReady.bind(this)}
                    onPlay={this.onVideoPlay.bind(this)}
                    onPause={this.onVideoPause.bind(this)}
                    onTimeUpdate={this.onVideoTimeUpdate.bind(this)}
                    onSeeking={this.onVideoSeeking.bind(this)}
                    onSeeked={this.onVideoSeeked.bind(this)}
                    onEnd={this.onVideoEnd.bind(this)}
                />
            </div>
        );
    }
}
export default VideoApp;

VideoJS APIs support:

onReady will return videojs instance. Which means you can use all the APIs provided by VideoJS.
List of VideoJS APIs

VideoJS plugins support:

Since most of the VideoJS plugins needs videojs instance to get initialized, it is very easy to integrate any of the available plugins by making use of videojs instance returnd by onReady event.
List of VideoJS plugins

Available Props:

Prop Name Prop Type Default Value Description
src string "" Video file path
poster string "" Video poster file path
width string | number auto Video player width
height string | number auto Video player height
controls boolean true Video player control bar toggle
autoplay boolean false Video will start playing automatically if true
preload string auto video tag preload attribute
playbackRates array [0.5, 1, 1.5, 2] Video speed control
hideControls array [] List of controls to hide. ['play','volume','seekbar','timer','playbackrates','fullscreen']
bigPlayButton boolean true Big play button visibility toggle
bigPlayButtonCentered boolean true Big play button center position toggle
className string "" Video player wrapper class. It can be used for custom player skin.

Video tracking props:

Method Name Description
onReady It will fire when video player is ready to be used. It returns videojs instance.
onPlay It will fire when video starts playing anytime. It returns current time of the video
onPause It will fire when video is paused. It returns current time of the video
onTimeUpdate It keeps firing while video is in playing state. It returns current time of the video
onSeeking It will fire when video is being seeked using seekbar. It returns current time of the video
onSeeked It will fire after seeking is done. It returns seek start time and seek end time for the video.
onEnd It will fire when video is finished playing.

About

React wrapper for VideoJS.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 100.0%