PageSourceSearch

https://mastodon.macstories.net/packs/audio-C2Zz7sht.js

js macstories.net collected 2026-09-24 08:39:56 UTC 11,686 bytes, 2 lines download raw bytes

1import{o as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{a as r,c as i,s as a}from"./react-intl-DlKP8ATg.js";import{t as o}from"./jsx-runtime-BdxMnOeJ.js";import{R as s}from"./initial_state-DnZ5UeDQ.js";import{i as c,n as ee,t as l}from"./react-spring_web.modern-C6ohYUSs.js";import{n as u}from"./settings-Cq4pjZIN.js";import{t as d}from"./classnames-CfLRLWYq.js";import{t as f}from"./icon-BNrUFRb_.js";import{a as te,c as ne,d as re,l as ie,n as p,o as ae,r as oe,s as se,u as ce}from"./video-B-s0PS3Z.js";import{t as le}from"./play_arrow-fill-DO429e7_.js";import{t as ue}from"./blurhash-CM3tW5se.js";import{t as de}from"./visualizer-BucFX7Pd.js";var m=e(d()),h=e(n()),g=o(),fe=e=>(0,g.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,height:24,viewBox:`0 -960 960 960`,width:24,...e,children:(0,g.jsx)(`path`,{d:`M480-320 280-520l56-58 104 104v-326h80v326l104-104 56 58-200 200ZM240-160q-33 0-56.5-23.5T160-240v-120h80v120h480v-120h80v120q0 33-23.5 56.5T720-160H240Z`})}),pe=({audioElementRef:e})=>{let t=(0,h.useRef)(null),n=(0,h.useRef)(null),r=(0,h.useRef)(null);return(0,h.useEffect)(()=>{if(!e.current||typeof AudioContext>`u`)return;let i=t.current??new AudioContext,a=n.current??i.createMediaElementSource(e.current),o=i.createGain();return o.connect(i.destination),a.connect(o),t.current=i,r.current=o,n.current=a,()=>{i.state!==`closed`&&i.close()}},[e]),{audioContextRef:t,sourceRef:n,gainNodeRef:r,playAudio:(0,h.useCallback)(()=>{t.current&&e.current&&(e.current.play(),t.current.resume())},[e]),pauseAudio:(0,h.useCallback)(()=>{t.current&&e.current&&(e.current.pause(),t.current.suspend())},[e])}},_=e=>new Array(...e).map(e=>e===-1/0?0:Math.sqrt(1-Math.max(-100,Math.min(-10,e))*-1/100)),me=({audioContextRef:e,sourceRef:t,numBands:n})=>{let r=(0,h.useRef)(null),[i,a]=(0,h.useState)(Array(n).fill(0));return(0,h.useEffect)(()=>{e.current&&(r.current=e.current.createAnalyser(),r.current.smoothingTimeConstant=.6,r.current.fftSize=2048)},[e]),(0,h.useEffect)(()=>{r.current&&t.current&&t.current.connect(r.current);let e=t.current;return()=>{e&&r.current&&e.disconnect(r.current)}},[e,t]),(0,h.useEffect)(()=>{let t=r.current,i=e.current;if(!t||!i)return;let o=t.frequencyBinCount,s=new Float32Array(o),c=setInterval(()=>{t.getFloatFrequencyData(s);let e=_(s.slice(100,600)),r=[],i=Math.ceil(e.length/n);for(let t=0;t<n;t++){let n=e.slice(t*i,(t+1)*i).reduce((e,t)=>e+t,0);r.push(n/i)}a(r)},15);return()=>{clearInterval(c)}},[n,e]),i},he=t({Audio:()=>b,default:()=>b}),v=a({play:{id:`video.play`,defaultMessage:`Play`},pause:{id:`video.pause`,defaultMessage:`Pause`},mute:{id:`video.mute`,defaultMessage:`Mute`},unmute:{id:`video.unmute`,defaultMessage:`Unmute`},download:{id:`video.download`,defaultMessage:`Download file`},hide:{id:`audio.hide`,defaultMessage:`Hide audio`},skipForward:{id:`video.skip_forward`,defaultMessage:`Skip forward`},skipBackward:{id:`video.skip_backward`,defaultMessage:`Skip backward`}}),ge=(e,t)=>{u.set(`volume`,e),u.set(`muted`,t)},_e=e=>{let t=u.get(`volume`)??.5,n=u.get(`muted`)??!1;e.volume=t,e.muted=n},y=4e3,b=({src:e,alt:t,lang:n,poster:a,duration:o,sensitive:u,editable:d,blurhash:_,visible:he,onToggleVisibility:b,backgroundColor:x=`#000000`,foregroundColor:S=`#ffffff`,accentColor:C=`#ffffff`,startTime:w,startPlaying:T,startVolume:E,startMuted:D,deployPictureInPicture:O,matchedFilters:ve})=>{let k=i(),[A,j]=(0,h.useState)(0),[M,N]=(0,h.useState)(o??0),[P,F]=(0,h.useState)(!0),[I,L]=(0,h.useState)(!1),[R,z]=(0,h.useState)(.5),[ye,B]=(0,h.useState)(!1),[be,xe]=(0,h.useState)(!1),[V,Se]=te({visible:he,sensitive:u}),Ce=(0,h.useRef)(null),H=(0,h.useRef)(null),U=(0,h.useRef)(null),W=(0,h.useRef)(null),G=(0,h.useRef)(null),{audioContextRef:we,sourceRef:Te,gainNodeRef:K,playAudio:q,pauseAudio:J}=pe({audioElementRef:H}),Ee=me({audioContextRef:we,sourceRef:Te,numBands:3}),[Y,X]=c(()=>({progress:`0%`,buffer:`0%`,volume:`0%`})),De=(0,h.useCallback)(t=>{H.current&&!H.current.paused&&t===null&&O?.(`audio`,{src:e,poster:a,backgroundColor:x,foregroundColor:S,accentColor:C,currentTime:H.current.currentTime,muted:H.current.muted,volume:H.current.volume}),H.current=t,H.current&&(_e(H.current),z(H.current.volume),L(H.current.muted),K.current&&(K.current.gain.value=H.current.volume),X.start({volume:`${H.current.volume*100}%`}))},[O,e,a,x,S,C,K,X]);(0,h.useEffect)(()=>{H.current&&(H.current.volume=R,H.current.muted=I,K.current&&(K.current.gain.value=I?0:R))},[R,I,K]),(0,h.useEffect)(()=>{V||J()},[J,V]),(0,h.useEffect)(()=>{let e,t=()=>{e=requestAnimationFrame(()=>{H.current&&H.current.duration>0&&X.start({progress:`${H.current.currentTime/H.current.duration*100}%`,config:ee.stiff}),t()})};return t(),()=>{cancelAnimationFrame(e)}},[X]);let Z=(0,h.useCallback)(()=>{H.current&&(H.current.paused?q():J())},[q,J]),Oe=(0,h.useCallback)(()=>{F(!1)},[]),ke=(0,h.useCallback)(()=>{F(!0)},[]),Ae=(0,h.useCallback)(()=>
1{if(!H.current)return;let e=H.current.buffered.length-1;e>-1&&X.start({buffer:`${Math.ceil(H.current.buffered.end(e)/H.current.duration)*100}%`})},[X]),je=(0,h.useCallback)(()=>{H.current&&(z(H.current.volume),L(H.current.muted),X.start({volume:`${H.current.muted?0:H.current.volume*100}%`}),ge(H.current.volume,H.current.muted))},[X,z,L]),Me=(0,h.useCallback)(()=>{H.current&&j(H.current.currentTime)},[j]),Q=(0,h.useCallback)(()=>{H.current&&(H.current.muted||H.current.volume===0?(H.current.muted=!1,H.current.volume===0&&(H.current.volume=.05)):H.current.muted=!0)},[]),Ne=(0,h.useCallback)(()=>{b?b():Se(e=>!e)},[b,Se]),Pe=(0,h.useCallback)(e=>{let t=()=>{document.removeEventListener(`mousemove`,n,!0),document.removeEventListener(`mouseup`,t,!0)},n=e=>{if(!W.current||!H.current)return;let{x:t}=oe(W.current,e);isNaN(t)||(H.current.volume=t,H.current.muted=!(t>0),X.start({volume:`${t*100}%`,immediate:!0}))};document.addEventListener(`mousemove`,n,!0),document.addEventListener(`mouseup`,t,!0),n(e.nativeEvent),e.preventDefault(),e.stopPropagation()},[X]),Fe=(0,h.useCallback)(e=>{let t=()=>{document.removeEventListener(`mousemove`,n,!0),document.removeEventListener(`mouseup`,t,!0),xe(!1),q()},n=e=>{if(!U.current||!H.current)return;let{x:t}=oe(U.current,e),n=H.current.duration*t;isNaN(n)||(H.current.currentTime=n,X.start({progress:`${t*100}%`,immediate:!0}))};document.addEventListener(`mousemove`,n,!0),document.addEventListener(`mouseup`,t,!0),xe(!0),H.current?.pause(),n(e.nativeEvent),e.preventDefault(),e.stopPropagation()},[q,X]),Ie=(0,h.useCallback)(()=>{B(!0),G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{B(!1)},y)},[B]),Le=(0,h.useCallback)(()=>{B(!0),G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{B(!1)},y)},[B]),Re=(0,h.useCallback)(()=>{B(!1),G.current&&clearTimeout(G.current)},[B]),ze=(0,h.useCallback)(()=>{B(!0),G.current&&clearTimeout(G.current),G.current=setTimeout(()=>{B(!1)},y)},[B]),Be=(0,h.useCallback)(()=>{H.current&&(N(H.current.duration),w!==void 0&&(H.current.currentTime=w),E!==void 0&&(H.current.volume=E),D!==void 0&&(H.current.muted=D))},[N,w,E,D]),Ve=(0,h.useCallback)(()=>{T&&q()},[T,q]),$=e=>{if(!H.current)return;let t=H.current.currentTime+e;isNaN(t)||(H.current.currentTime=t)},He=(0,h.useCallback)(e=>{e.key===` `&&(e.preventDefault(),e.stopPropagation(),Z())},[Z]),Ue=(0,h.useCallback)(()=>{$(-5)},[]),We=(0,h.useCallback)(()=>{$(5)},[]),Ge=(0,h.useCallback)(e=>{let t=e=>{if(!H.current)return;let t=Math.max(0,H.current.volume+e);isNaN(t)||(H.current.volume=t,H.current.muted=!(t>0))};switch(e.key){case`k`:case` `:e.preventDefault(),e.stopPropagation(),Z();break;case`m`:e.preventDefault(),e.stopPropagation(),Q();break;case`j`:case`ArrowLeft`:e.preventDefault(),e.stopPropagation(),$(-5);break;case`l`:case`ArrowRight`:e.preventDefault(),e.stopPropagation(),$(5);break;case`ArrowUp`:e.preventDefault(),e.stopPropagation(),t(.15);break;case`ArrowDown`:e.preventDefault(),e.stopPropagation(),t(-.15)}},[Z,Q]),Ke=Math.min(A/M*100,100),qe=I||R===0;return(0,g.jsxs)(`div`,{className:(0,m.default)(`audio-player`,{inactive:!V}),ref:Ce,style:{"--player-background-color":x,"--player-foreground-color":S,"--player-accent-color":C},onMouseEnter:Ie,onMouseMove:Le,onMouseLeave:Re,onTouchEnd:ze,role:`button`,tabIndex:0,onKeyDownCapture:Ge,"aria-label":t,lang:n,children:[_&&(0,g.jsx)(ue,{hash:_,className:(0,m.default)(`media-gallery__preview`,{"media-gallery__preview--hidden":V}),dummy:!s}),(0,g.jsx)(`audio`,{src:e,ref:De,preload:T?`auto`:`none`,onPlay:Oe,onPause:ke,onProgress:Ae,onLoadedData:Be,onCanPlayThrough:Ve,onTimeUpdate:Me,onVolumeChange:je,crossOrigin:`anonymous`}),(0,g.jsxs)(`div`,{className:`video-player__seek`,"aria-valuemin":0,"aria-valuenow":Ke,"aria-valuemax":100,onMouseDown:Fe,onKeyDownCapture:He,ref:U,role:`slider`,tabIndex:0,children:[(0,g.jsx)(l.div,{className:`video-player__seek__buffer`,style:{width:Y.buffer}}),(0,g.jsx)(l.div,{className:`video-player__seek__progress`,style:{width:Y.progress}}),(0,g.jsx)(l.span,{className:(0,m.default)(`video-player__seek__handle`,{active:be}),style:{left:Y.progress}})]}),(0,g.jsxs)(`div`,{className:`audio-player__controls`,children:[(0,g.jsx)(`div`,{className:`audio-player__controls__play`,children:(0,g.jsx)(`button`,{type:`button`,title:k.formatMessage(v.skipB
1ackward),"aria-label":k.formatMessage(v.skipBackward),className:`player-button`,onClick:Ue,children:(0,g.jsx)(f,{id:``,icon:ie})})}),(0,g.jsxs)(`div`,{className:`audio-player__controls__play`,children:[(0,g.jsx)(de,{frequencyBands:Ee,poster:a}),(0,g.jsx)(`button`,{type:`button`,title:k.formatMessage(P?v.play:v.pause),"aria-label":k.formatMessage(P?v.play:v.pause),className:`player-button`,onClick:Z,children:(0,g.jsx)(f,{id:P?`play`:`pause`,icon:P?le:ce})})]}),(0,g.jsx)(`div`,{className:`audio-player__controls__play`,children:(0,g.jsx)(`button`,{type:`button`,title:k.formatMessage(v.skipForward),"aria-label":k.formatMessage(v.skipForward),className:`player-button`,onClick:We,children:(0,g.jsx)(f,{id:``,icon:re})})})]}),(0,g.jsx)(ae,{hidden:V||d,sensitive:u??!1,onClick:Ne,matchedFilters:ve}),(0,g.jsx)(`div`,{className:(0,m.default)(`video-player__controls`,{active:ye}),children:(0,g.jsxs)(`div`,{className:`video-player__buttons-bar`,children:[(0,g.jsxs)(`div`,{className:`video-player__buttons left`,children:[(0,g.jsx)(`button`,{type:`button`,title:k.formatMessage(I?v.unmute:v.mute),"aria-label":k.formatMessage(I?v.unmute:v.mute),className:`player-button`,onClick:Q,children:(0,g.jsx)(f,{id:I?`volume-off`:`volume-up`,icon:I?ne:se})}),(0,g.jsxs)(`div`,{className:`video-player__volume active`,ref:W,onMouseDown:Pe,role:`slider`,"aria-valuemin":0,"aria-valuenow":qe?0:R*100,"aria-valuemax":100,tabIndex:0,children:[(0,g.jsx)(l.div,{className:`video-player__volume__current`,style:{width:Y.volume}}),(0,g.jsx)(l.span,{className:(0,m.default)(`video-player__volume__handle`),style:{left:Y.volume}})]}),(0,g.jsxs)(`span`,{className:`video-player__time`,children:[(0,g.jsx)(`span`,{className:`video-player__time-current`,children:p(Math.floor(A))}),(0,g.jsx)(`span`,{className:`video-player__time-sep`,children:`/`}),(0,g.jsx)(`span`,{className:`video-player__time-total`,children:p(Math.floor(M))})]})]}),(0,g.jsx)(`div`,{className:`video-player__buttons right`,children:!d&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`button`,{type:`button`,className:`player-button`,onClick:Ne,children:(0,g.jsx)(r,{id:`media_gallery.hide`,defaultMessage:`Hide`})}),(0,g.jsx)(`a`,{title:k.formatMessage(v.download),"aria-label":k.formatMessage(v.download),className:`video-player__download__icon player-button`,href:e,download:!0,children:(0,g.jsx)(f,{id:`download`,icon:fe})})]})})]})})]})};export{he as n,b as t};
2//# sourceMappingURL=audio-C2Zz7sht.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.