@ducanh2912/react-hls-player
Version:
A simple and easy to use react component for playing an hls live stream
3 lines (2 loc) • 1.42 kB
JavaScript
import r from"hls.js";import n,{useState as t,useRef as e,useEffect as o}from"react";function a(){return a=Object.assign?Object.assign.bind():function(r){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var e in t)Object.prototype.hasOwnProperty.call(t,e)&&(r[e]=t[e])}return r},a.apply(this,arguments)}var l=["hlsConfig","playerRef","src","autoPlay"],u=function(u){var c=u.hlsConfig,i=u.playerRef,s=u.src,f=u.autoPlay,p=function(r,n){if(null==r)return{};var t,e,o={},a=Object.keys(r);for(e=0;e<a.length;e++)n.indexOf(t=a[e])>=0||(o[t]=r[t]);return o}(u,l),y=t(!1),E=y[0],v=y[1],d=e(null),R=null!=i?i:d;return o(function(){var n;return r.isSupported()&&(function t(){null!=n&&n.destroy();var e=new r(a({enableWorker:!1},c));null!=R.current&&e.attachMedia(R.current),e.on(r.Events.MEDIA_ATTACHED,function(){e.loadSource(s),e.on(r.Events.MANIFEST_PARSED,function(){var r;f&&(null==R||null==(r=R.current)||r.play().catch(function(){return console.log("Unable to autoplay prior to user interaction with the dom.")}))})}),e.on(r.Events.ERROR,function(n,o){if(o.fatal)switch(o.type){case r.ErrorTypes.NETWORK_ERROR:e.startLoad();break;case r.ErrorTypes.MEDIA_ERROR:e.recoverMediaError();break;default:t()}}),n=e}(),v(!0)),function(){null!=n&&n.destroy()}},[f,c,R,s]),n.createElement("video",a(E?{ref:R}:{ref:R,src:s,autoPlay:f},p))};export{u as default};
//# sourceMappingURL=ducanh2912-react-hls.module.js.map