videoact
v0.1.0
Published
videoact is a highly configrable html5 video component built from the ground up using React library.
Downloads
13
Maintainers
Readme
videoact is a highly configrable html5 video component built from the ground up using React library.
Usage
ES6
npm install videoact --save
# or
yarn add videoactimport React, { Component } from 'react';
import Videoact from 'videoact';
class App extends Component {
render () {
return <Videoact src='https://media.w3.org/2010/05/sintel/trailer_hd.mp4' />
}
}Es5
<script crossorigin src="https://unpkg.com/react@16/umd/react.production.min.js" type="text/javascript"></script>
<script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js" type="text/javascript"></script>
<script crossorigin src="https://unpkg.com/[email protected]/lib/index.js" type="text/javascript"></script>
<script type="text/javascript">
var props = {
src: 'https://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_30mb.mp4',
autoplay: true,
controls: true,
};
ReactDOM.render(
React.createElement(videoact.default, props, null),
document.getElementById('app')
);
</script> Properties
Example
<Videoact
autoplay={true}
controls={true}
src={'https://www.videos.com/video.mp4'}
/>List
| Property | Description | Default |
| :-- | :-- | :-- |
| autoplay | set Set if the video should start playing as soon as it is loaded | false |
| controls | set Set if the video should display controls (like play/pause etc.) | true |
| crossOrigin | set the CORS settings of the video | "anonymous" |
| currentTime | set the current playback position in the video (in seconds) | 0 |
| defaultMuted | set Set if the video should be muted by default | false |
| defaultPlaybackRate | set the default speed of the video playback | 1 |
| download | set the download option | false |
| height | set the video height | null |
| loop | set Set if the video should start over again when finished | false |
| mediaGroup | set the group the video belongs to (used to link multiple video elements) | "videoact" |
| muted | set Set if the video is muted or not | false |
| playbackRate | set the speed of the video playback | 1 |
| preload | set Set if the video should be loaded when the page loads | false |
| ratio | set the video aspect ratio | 3.166 (19/6) |
| src | set the current source of the video element | "" |
| volume | set the volume of the video | 1 |
| width | set the video width | "100%" |
Note: If
widthandheightwas specified, theratiobe ignored also if you want to keep the original video aspect ratio setratioit tonull
Property list (get)
Example
<Videoact {...props} ref={e => {this.video = e}} />
<button onClick={()=> { alert(this.video.duration) }}>video duration</button>List
| Property | Description |
| :-- | :-- |
| audioTracks | get an AudioTrackList object representing available audio tracks |
| autoplay | get whether the video should start playing as soon as it is loaded |
| buffered | get a TimeRanges object representing the buffered parts of the video |
| controller | get the MediaController object representing the current media controller of the video |
| controls | get whether the video should display controls (like play/pause etc.) |
| crossOrigin | get the CORS settings of the video | "anonymous" |
| currentSrc | get the URL of the current video |
| currentTime | get the current playback position in the video (in seconds) |
| defaultMuted | get whether the video should be muted by default |
| defaultPlaybackRate | get the default speed of the video playback |
| duration | get the length of the current video (in seconds) |
| ended | get whether the playback of the video has ended or not |
| error | get a MediaError object representing the error state of the video |
| loop | get whether the video should start over again when finished |
| mediaGroup | get the group the video belongs to (used to link multiple video elements) |
| muted | get whether the video is muted or not |
| networkState | get the current network state of the video |
| paused | get whether the video is paused or not |
| playbackRate | get the speed of the video playback |
| played | get a TimeRanges object representing the played parts of the video |
| preload | get whether the video should be loaded when the page loads |
| readyState | get the current ready state of the video |
| seekable | get a TimeRanges object representing the seekable parts of the video |
| seeking | get whether the user is currently seeking in the video |
| src | get the current source of the video element |
| startDate | get a Date object representing the current time offset |
| textTracks | get a TextTrackList object representing the available text tracks |
| videoTracks | get a VideoTrackList object representing the available video tracks |
| volume | get the volume of the video |
Events
The HTML5 DOM has events for the video elements, so all what I did here is mapping the native events to videoact component.
Example
<Videoact
{...props}
onEnded={() => { alert('finished') }}
onPause={() => { alert('paused') }}
/>List
| Event | Description | | :-- | :-- | | onAbort | When the loading of an video is aborted | | onCanPlay | When the browser can start playing the video | | onCanPlayThrough | When the browser can play through the video without stopping for buffering | | onDurationChange | When the download button clicked | | onDurationChange | When the duration of the video is changed | | onEmptied | When the current playlist is empty | | onEnded | When the current playlist is ended | | onError | When an error occurred during the loading of an video | | onLoadedData | When the browser has loaded the current frame of the video | | onLoadedMetadata | When the browser has loaded meta data for the video | | onLoadStart | When the browser starts looking for the video | | onPause | When the video has been paused | | onPlay | When the video has been started or is no longer paused | | onPlaying | When the video is playing after having been paused or stopped for buffering | | onProgress | When the browser is downloading the video | | onRateChange | When the playing speed of the video is changed | | onSeeked | When the user is finished moving/skipping to a new position in the video | | onSeeking | When the user starts moving/skipping to a new position in the video | | onStalled | When the browser is trying to get media data, but data is not available | | onSuspend | When the browser is intentionally not getting media data | | onTimeUpdate | When the current playback position has changed | | onVolumeChange | When the volume has been changed | | onWaiting | When the video stops because it needs to buffer the next frame |
Methods
These are all the HTML5 video methods that allow you to manipulate the videoact component.
Example
<Videoact {...props} ref={e => {this.video = e}} />
<button onClick={()=> { this.video.play() }} >play</button>Method list
| Method | Description | | :-- | :-- | | addTextTrack | Adds a new text track to the video | | canPlayType | Checks if the browser can play the specified video type | | load | Re-loads the video element | | play | Starts playing the video | | pause | Pauses the currently playing video | | fullscreen* | Request full screen if supported | | exitFullscreen* | Request exit from full screen |
Note: Fullscreen need to be called from within an event handler or otherwise they will be denied.
Methods
- add volume control
- add seeker
