UNPKG

@mux/mux-audio-react

Version:

A custom mux audio element for React that Just Works™

3 lines (2 loc) 2.15 kB
"use client";import{useEffect as S,useRef as v}from"react";var b=(...r)=>{let a=v(null);return S(()=>{r.forEach(n=>{n&&(typeof n=="function"?n(a.current):n.current=a.current)})},[r]),a};import R,{useEffect as s,useRef as M,useState as O}from"react";import e from"prop-types";import{allMediaTypes as w,initialize as I,teardown as H,StreamTypes as V,PlaybackTypes as h,toMuxVideoURL as P,generatePlayerInitTime as N,CmcdTypes as D}from"@mux/playback-core";var A=()=>{try{return"0.15.7"}catch{}return"UNKNOWN"},L=A(),T=()=>L;var U=T(),W="mux-audio-react";var p=R.forwardRef((r,a)=>{var m,y;let{playbackId:n,src:u,children:g,autoPlay:c,preload:l,tokens:_,playbackToken:K,...x}=r,E=Object.fromEntries(Object.entries(x).filter(([t])=>!Object.keys(p.propTypes).includes(t))),[k]=O((m=r.playerInitTime)!=null?m:N()),[d,C]=O((y=P(r))!=null?y:u),o=M(void 0),j=M(null),f=b(j,a);return s(()=>{var t;C((t=P(r))!=null?t:u)},[u,n]),s(()=>{let t={playerInitTime:k,...r,src:d,playerSoftwareName:W,playerSoftwareVersion:U,autoplay:c},i=f.current;return i&&(o.current=I(t,i,o.current)),()=>{H(i,o.current),i=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(l)},[l]),R.createElement("audio",{ref:f,...E},g)});p.propTypes={_hlsConfig:e.any,beaconCollectionDomain:e.string,customDomain:e.string,debug:e.bool,disableCookies:e.bool,disableTracking:e.bool,envKey:e.string,errorTranslator:e.any,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)),programStartTime:e.number,programEndTime:e.number,assetStartTime:e.number,assetEndTime:e.number,preferPlayback:e.oneOf(Object.values(h)),renditionOrder:e.oneOf(["desc"]),startTime:e.number,streamType:e.oneOf(Object.values(V)),targetLiveWindow:e.number,tokens:e.object,type:e.oneOf(w)};var $=p;export{$ as default,N as generatePlayerInitTime,W as playerSoftwareName,U as playerSoftwareVersion}; //# sourceMappingURL=index.mjs.map