1.0.0 • Published 1 year ago

@aka_theos/react-hls-player v1.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

react-hls-player

A custom react hls player inspired by Youtube with bitrate options if avaiblable.

Introduction

react-hls-player is a simple HLS live stream player. It uses hls.js to play your hls live stream if your browser supports html 5 video and MediaSource Extension.

npm install @aka_theos/react-hls-player@1.0.0

Examples

Using the TheosPlayer component

import React from "react";
import ReactDOM from "react-dom";
import TheosPlayer from "@aka_theos/react-hls-player";

ReactDOM.render(
  <TheosPlayer
    src="https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8"
    autoPlay={false}
  />,
  document.getElementById("app")
);

Using hlsConfig (advanced use case)

All available config properties can be found on the Fine Tuning section of the Hls.js API.md

import React from "react";
import ReactDOM from "react-dom";
import TheosPlayer from "@aka_theos/react-hls-player";

ReactDOM.render(
  <TheosPlayer
    src="https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8"
    hlsConfig={{
      maxLoadingDelay: 4,
      minAutoBitrate: 0,
      lowLatencyMode: true,
    }}
  />,
  document.getElementById("app")
);

Props

All video properties are supported and passed down to the underlying video component

PropDescription
src String, requiredThe hls url that you want to play
autoPlay BooleanAutoplay when component is ready. Defaults to false
hlsConfig Objecthls.js config, you can see all config here
widthDetermines the width of the video player. note that if you leave this empty the video player is responsive.
titlegive the video a title and it will appear in the video player.
colorgive the video player a color and it will change the color theme of the player.

Additional Notes

By default, the HLS config will have enableWorker set to false. There have been issues with the HLS.js library that breaks some React apps, so I've disabled it to prevent people from running in to this issue. If you want to enable it and see if it works with your React app, you can simply pass in enableWorker: true to the hlsConfig prop object. See this issue for more information