Socket
Book a DemoInstallSign in
Socket

basic-video

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

basic-video

Basic Video Player wrapper utilizing the MediaElement API

0.1.4
latest
Source
npmnpm
Version published
Weekly downloads
4
Maintainers
1
Weekly downloads
 
Created
Source

Basic Video

A simple and consistent API for web video playback

Supports all default features for <video> and <audio> tags, with some additional functionality.

This repo exists solely as an API layer around the default HTMLMediaElement. It's sole purpose is to provide basic video playback for a developer to create their own custom video player.

To see a sample of the api with custom controls. Check out the basic-video-player repository.

Getting Started

npm install basic-video

<video id="player" preload="auto" controls>
MP4
import BasicVideo from 'basic-video';

const basicVideo = new BasicVideo(document.getElementById('player'), {
    poster: 'https://d292x7cpdimrbp.cloudfront.net/video/poster.jpg',
    sources: [
        {
            src: 'https://d292x7cpdimrbp.cloudfront.net/video/1080.mp4',
            type: 'video/mp4',
            label: '1080'
        },
        {
            src: 'https://d292x7cpdimrbp.cloudfront.net/video/720.mp4',
            type: 'video/mp4',
            label: '720'
        },
        {
            src: 'https://d292x7cpdimrbp.cloudfront.net/video/480.mp4',
            type: 'video/mp4',
            label: '480'
        },
    ],
});
HLS
import BasicVideo from 'basic-video';

const basicVideo = new BasicVideo(document.getElementById('player'), {
    poster: 'https://d292x7cpdimrbp.cloudfront.net/video/poster.jpg',
    hlsManifestUrl: 'https://d292x7cpdimrbp.cloudfront.net/video/video.m3u8',
});

Getters/Setters

//Get
const currentTime = basicVideo.currentTime;

//Set
basicVideo.currentTime = 30;
PropTypeGetSetInfo
currentSourceStringxxCurrent media source being played
posterStringxxPoster on the video element
currentVolumeNumberxxCurrent volume of the media
bufferedObjectxTimeRanges object (buffered.start(0) and buffered.end(0) to get the range)
isMutedBooleanxxMute the player
isReadyBooleanxCan the media play through without interruption
readyStateNumberxMDN
totalDurationNumberxTotal duration of the media in seconds
currentTimeNumberxxThe current time of the media in seconds
currentProgressNumberxThe current progress percentage of the media
playbackRateNumberxxThe playback rate of the media (1 for normal, 0.5 for half etc...)
playbackQualitiesArrayxAn array of all available qualities with their label and source
currentPlaybackQualityNumberxxCurrent index of the playbackQualities array

Methods

basicVideo.play();
MethodParamsReturnsInfo
initPromiseInitialize the player with existing props (invoked in the constructor). Can be used to refresh the player if you want
forceLoadPromiseForces the player to reload the media, returns a promise that resolves when the isReady prop returns true. Times itself out after 5 minutes.
playPlay the media
pausePause the media
loadHlsJs (static)Create a script element with the latest version of hls.js
attachHlsmanifest (string)Attach an instance of hls.js to the video element with am HLS Manifest URL

Events

All events are emit from the MediaElement object (the <video> element you injected into the player).

EventInfo
initemit after the init function resolves

You can also hook into all of the DOM Events available to the HTMLMediaElement

basicVideo.MediaElement.addEventListener('play' => event {
    console.log(event);
)

FAQs

Package last updated on 20 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.