Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

mirax-player

Package Overview
Dependencies
Maintainers
1
Versions
144
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mirax-player

A simple video player for react

  • 1.1.2
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Mirax Player


video


Table of Contents

  • Description
  • Installation
  • Usage
  • Colors
  • Features
  • License

Description

Mirax Player is a simple video player for react web application.


https://www.npmjs.com/package/mirax-player

Installation

To install the Mirax Player, you can use the following npm command:

npm install mirax-player

How to use

You can apply it in react app


example : location of video file public/clip.mp4


Usage

In you React, app.js or main.js / jsx extension


add: 
import 'mirax-player/mirax.css';

Then use the attach from Mirax Player:


import React, { useEffect, useState } from 'react';
import  Mirax, { attach }  from 'mirax-player';

const ExampleComponent = () => {
  const [isPlaying, setIsPlaying] = useState(false);
  useEffect(() => {
    const videoElement = attach('.whatever'); 
    // you can declare any variable here starts with . (known as class selector)
    // find className="whatever" src="clip.mp4"
    const options = {
      playPauseBtn: '.play-pause-btn',
      volumeSlider: '.volume-slider',
      progressBar: '.progress-bar',
      currentTimeStamp: '.current-time',
      durationTimeStamp: '.duration-time',
      fullscreenBtn: '.fullscreen-btn',
    };

    const videoPlayer = new Mirax(videoElement, options);
    // Listen for the "timeupdate" event to update time values
    videoElement.addEventListener('timeupdate', () => {
      videoPlayer.updateCurrentTimeAndDuration();
    });
    return () => {};
  }, []);

  const togglePlayPause = () => {
    setIsPlaying(prevIsPlaying => {
      const video = attach('.whatever'); // Can edit class selector
      if (prevIsPlaying) {video.pause();} else {video.play();}
      return !prevIsPlaying;
    });
  };

  return (
    <div className="video-player">
      <video className="whatever" src="clip.mp4"></video>
      <div className="controls">
       <div className="volume-icon"><div className="speaker"></div>
        </div>
        <button className="play-pause-btn" onClick={togglePlayPause}>{isPlaying ? 'Pause' : 'Play'}
        </button>
        <input type="range" className="volume-slider" min="0" max="1" step="0.01"defaultValue="1"/>
        <progress className="progress-bar" min="0" max="100" value="0"></progress>
        <div className="current-time"></div>
        <div className="duration-time"></div>
        <button className="fullscreen-btn">Fullscreen</button>
      </div>
    </div>
  );
};

export default ExampleComponent;

Colors

To change color for progress bar and progress frame


const progressColorize = 'blue'; //change any color


const progressColorize = '#00ff00'; // hexadecimal colors supported


import Mirax, { attach, progressColor } from 'mirax-player';

--------

-------------
keys:

 const progressColorize = '';

 const injectProgress = progressColor(progressColorize);
    return () => {

      document.head.removeChild(injectProgress);
 
    };
  }, [progressColorize ]);


example:



import React, { useEffect, useState } from 'react';
import Mirax, { attach, progressColor } from 'mirax-player';



const VideoPlayerComponent = () => {
  const [isPlaying, setIsPlaying] = useState(false);
  const progressColorize = '';

  useEffect(() => {
    const videoElement = attach('.whatever');
    const options = {
      playPauseBtn: '.play-pause-btn',
      volumeSlider: '.volume-slider',
      progressBar: '.progress-bar',
      currentTimeStamp: '.current-time',
      durationTimeStamp: '.duration-time',
      fullscreenBtn: '.fullscreen-btn',
    };

    const videoPlayer = new Mirax(videoElement, options);

    // Listen for the "timeupdate" event to update time values
    videoElement.addEventListener('timeupdate', () => {
      videoPlayer.updateCurrentTimeAndDuration();
    });

    const injectProgress = progressColor(progressColorize);
    return () => {

      document.head.removeChild(injectProgress);
 
    };
  }, [progressColorize ]);

  const togglePlayPause = () => {
    setIsPlaying(prevIsPlaying => {
      const video = attach('.whatever');
      if (prevIsPlaying) {
        video.pause();
      } else {
        video.play();
      }
      return !prevIsPlaying;
    });
  };

  return (
    <div className="video-player">
    </div>
  );
};

export default VideoPlayerComponent;



You can also use both: progressColor and progressFrame

example:


import React, { useEffect, useState } from 'react';
import Mirax, { attach,  progressColor,  progressFrame } from 'mirax-player';


const VideoPlayerComponent = () => {
  const [isPlaying, setIsPlaying] = useState(false);
  const progressColorize = 'white'; //change color here
  const frameColorize = '#ff4500'; //change color here

  useEffect(() => {
    const videoElement = attach('.whatever');

    const options = {
      playPauseBtn: '.play-pause-btn',
      volumeSlider: '.volume-slider',
      progressBar: '.progress-bar',
      currentTimeStamp: '.current-time',
      durationTimeStamp: '.duration-time',
      fullscreenBtn: '.fullscreen-btn',
    };

    const videoPlayer = new Mirax(videoElement, options);

    // Listen for the "timeupdate" event to update time values
    videoElement.addEventListener('timeupdate', () => {
      videoPlayer.updateCurrentTimeAndDuration();
    });


    const injectProgress = progressColor(progressColorize);
    const injectFrame = progressFrame(frameColorize);
    return () => {
      document.head.removeChild(injectProgress);
      document.head.removeChild(injectFrame);
    };
  }, [progressColorize, frameColorize ]);

  const togglePlayPause = () => {
    setIsPlaying(prevIsPlaying => {
      const video = attach('.whatever');
      if (prevIsPlaying) {
        video.pause();
      } else {
        video.play();
      }
      return !prevIsPlaying;
    });
  };

  return (
    <div className="video-player">
    
    </div>
  );
};

export default VideoPlayerComponent;




Features

  • Play and Pause
  • Fullscreen
  • Adjust the volume (low or high)
  • You can point and drag the timestamp in video time duration anywhere
  • You can change the color of progress bar and progress frame

License

MIT

Keywords

FAQs

Package last updated on 24 Aug 2023

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

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc