0.1.0 • Published 6 years ago
videoact v0.1.0
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 videoact
import 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/videoact@0.0.2/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
width
andheight
was specified, theratio
be ignored also if you want to keep the original video aspect ratio setratio
it 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