@mux/mux-video-react
Version:
A custom mux video element for React that Just Works™
3 lines (2 loc) • 2.31 kB
JavaScript
"use client";import{useEffect as v,useRef as V}from"react";var y=(...r)=>{let i=V(null);return v(()=>{r.forEach(n=>{n&&(typeof n=="function"?n(i.current):n.current=i.current)})},[r]),i};import R,{useEffect as s,useRef as M,useState as P}from"react";import e from"prop-types";import{allMediaTypes as L,initialize as I,teardown as h,StreamTypes as H,PlaybackTypes as N,toMuxVideoURL as g,generatePlayerInitTime as A,CmcdTypes as D}from"@mux/playback-core";var j=()=>{try{return"0.31.2"}catch{}return"UNKNOWN"},w=j(),T=()=>w;var K=T(),U="mux-video-react";var u=R.forwardRef((r,i)=>{var f,b;let{playbackId:n,src:l,children:O,autoPlay:c,preload:p,tokens:W,playbackToken:_,drmToken:z,...E}=r,k=Object.fromEntries(Object.entries(E).filter(([t])=>!Object.keys(u.propTypes).includes(t))),[x]=P((f=r.playerInitTime)!=null?f:A()),[d,C]=P((b=g(r))!=null?b:l),o=M(void 0),S=M(null),m=y(S,i);return s(()=>{var t;C((t=g(r))!=null?t:l)},[l,n]),s(()=>{let t={playerInitTime:x,...r,src:d,playerSoftwareName:U,playerSoftwareVersion:K,autoplay:c},a=m.current;return a&&(o.current=I(t,a,o.current)),()=>{h(a,o.current),a=void 0,o.current=void 0}},[d]),s(()=>{var t;(t=o.current)==null||t.setAutoplay(c)},[c]),s(()=>{var t;(t=o.current)==null||t.setPreload(p)},[p]),R.createElement("video",{ref:m,...k},O)});u.propTypes={_hlsConfig:e.any,beaconCollectionDomain:e.string,capRenditionToPlayerSize:e.bool,customDomain:e.string,debug:e.bool,disableCookies:e.bool,disableTracking:e.bool,drmToken:e.string,envKey:e.string,errorTranslator:e.func,liveEdgeStart:e.number,maxResolution:e.oneOf(["720p","1080p","1440p","2160p"]),metadata:e.any,minResolution:e.oneOf(["480p","540p","720p","1080p","1440p","2160p"]),playbackId:e.string,playbackToken:e.string,playerInitTime:e.number,preferCmcd:e.oneOf(Object.values(D)),preferPlayback:e.oneOf(Object.values(N)),programStartTime:e.number,programEndTime:e.number,assetStartTime:e.number,assetEndTime:e.number,renditionOrder:e.oneOf(["desc"]),startTime:e.number,initialBandwidthEstimateKbps:e.number,initialEstimateSegments:e.number,minPreloadSegments:e.number,streamType:e.oneOf(Object.values(H)),targetLiveWindow:e.number,tokens:e.object,type:e.oneOf(L)};var ee=u;export{ee as default,A as generatePlayerInitTime,U as playerSoftwareName,K as playerSoftwareVersion};
//# sourceMappingURL=index.mjs.map