browser-76056317.js 30 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. var I=globalThis&&globalThis.__awaiter||function(h,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(o){try{c(i.next(o))}catch(d){r(d)}}function l(o){try{c(i.throw(o))}catch(d){r(d)}}function c(o){o.done?s(o.value):n(o.value).then(a,l)}c((i=i.apply(h,t||[])).next())})};function O(h,t){return I(this,void 0,void 0,function*(){const e=new AudioContext({sampleRate:t});return e.decodeAudioData(h).finally(()=>e.close())})}function U(h){const t=h[0];if(t.some(e=>e>1||e<-1)){const e=t.length;let i=0;for(let n=0;n<e;n++){const s=Math.abs(t[n]);s>i&&(i=s)}for(const n of h)for(let s=0;s<e;s++)n[s]/=i}return h}function Q(h,t){return typeof h[0]=="number"&&(h=[h]),U(h),{duration:t,length:h[0].length,sampleRate:h[0].length/t,numberOfChannels:h.length,getChannelData:e=>h==null?void 0:h[e],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}const x={decode:O,createBuffer:Q};var B=globalThis&&globalThis.__awaiter||function(h,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(o){try{c(i.next(o))}catch(d){r(d)}}function l(o){try{c(i.throw(o))}catch(d){r(d)}}function c(o){o.done?s(o.value):n(o.value).then(a,l)}c((i=i.apply(h,t||[])).next())})};function H(h,t,e){var i,n;return B(this,void 0,void 0,function*(){const s=yield fetch(h,e);{const r=(i=s.clone().body)===null||i===void 0?void 0:i.getReader(),a=Number((n=s.headers)===null||n===void 0?void 0:n.get("Content-Length"));let l=0;const c=(o,d)=>B(this,void 0,void 0,function*(){if(o)return;l+=(d==null?void 0:d.length)||0;const p=Math.round(l/a*100);return t(p),r==null?void 0:r.read().then(({done:m,value:u})=>c(m,u))});r==null||r.read().then(({done:o,value:d})=>c(o,d))}return s.blob()})}const F={fetchBlob:H};class _{constructor(){this.listeners={},this.on=this.addEventListener,this.un=this.removeEventListener}addEventListener(t,e,i){if(this.listeners[t]||(this.listeners[t]=new Set),this.listeners[t].add(e),i!=null&&i.once){const n=()=>{this.removeEventListener(t,n),this.removeEventListener(t,e)};return this.addEventListener(t,n),n}return()=>this.removeEventListener(t,e)}removeEventListener(t,e){var i;(i=this.listeners[t])===null||i===void 0||i.delete(e)}once(t,e){return this.on(t,e,{once:!0})}unAll(){this.listeners={}}emit(t,...e){this.listeners[t]&&this.listeners[t].forEach(i=>i(...e))}}class V extends _{constructor(t){super(),this.isExternalMedia=!1,t.media?(this.media=t.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),t.mediaControls&&(this.media.controls=!0),t.autoplay&&(this.media.autoplay=!0),t.playbackRate!=null&&this.onceMediaEvent("canplay",()=>{t.playbackRate!=null&&(this.media.playbackRate=t.playbackRate)})}onMediaEvent(t,e,i){return this.media.addEventListener(t,e,i),()=>this.media.removeEventListener(t,e)}onceMediaEvent(t,e){return this.onMediaEvent(t,e,{once:!0})}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){const t=this.getSrc();t.startsWith("blob:")&&URL.revokeObjectURL(t)}setSrc(t,e){if(this.getSrc()===t)return;this.revokeSrc();const n=e instanceof Blob?URL.createObjectURL(e):t;this.media.src=n,this.media.load()}destroy(){this.media.pause(),!this.isExternalMedia&&(this.media.remove(),this.revokeSrc(),this.media.src="",this.media.load())}setMediaElement(t){this.media=t}play(){return this.media.play()}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(t){this.media.currentTime=t}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(t){this.media.volume=t}getMuted(){return this.media.muted}setMuted(t){this.media.muted=t}getPlaybackRate(){return this.media.playbackRate}setPlaybackRate(t,e){e!=null&&(this.media.preservesPitch=e),this.media.playbackRate=t}getMediaElement(){return this.media}setSinkId(t){return this.media.setSinkId(t)}}function q(h,t,e,i,n=5){let s=()=>{};if(!h)return s;const r=a=>{if(a.button===2)return;a.preventDefault(),a.stopPropagation(),h.style.touchAction="none";let l=a.clientX,c=a.clientY,o=!1;const d=u=>{u.preventDefault(),u.stopPropagation();const f=u.clientX,b=u.clientY;if(o||Math.abs(f-l)>=n||Math.abs(b-c)>=n){const{left:y,top:A}=h.getBoundingClientRect();o||(o=!0,e==null||e(l-y,c-A)),t(f-l,b-c,f-y,b-A),l=f,c=b}},p=u=>{o&&(u.preventDefault(),u.stopPropagation())},m=()=>{h.style.touchAction="",o&&(i==null||i()),s()};document.addEventListener("pointermove",d),document.addEventListener("pointerup",m),document.addEventListener("pointerleave",m),document.addEventListener("click",p,!0),s=()=>{document.removeEventListener("pointermove",d),document.removeEventListener("pointerup",m),document.removeEventListener("pointerleave",m),setTimeout(()=>{document.removeEventListener("click",p,!0)},10)}};return h.addEventListener("pointerdown",r),()=>{s(),h.removeEventListener("pointerdown",r)}}class D extends _{constructor(t,e){super(),this.timeouts=[],this.isScrolling=!1,this.audioData=null,this.resizeObserver=null,this.isDragging=!1,this.options=t;const i=this.parentFromOptionsContainer(t.container);this.parent=i;const[n,s]=this.initHtml();i.appendChild(n),this.container=n,this.scrollContainer=s.querySelector(".scroll"),this.wrapper=s.querySelector(".wrapper"),this.canvasWrapper=s.querySelector(".canvases"),this.progressWrapper=s.querySelector(".progress"),this.cursor=s.querySelector(".cursor"),e&&s.appendChild(e),this.initEvents()}parentFromOptionsContainer(t){let e;if(typeof t=="string"?e=document.querySelector(t):t instanceof HTMLElement&&(e=t),!e)throw new Error("Container not found");return e}initEvents(){const t=i=>{const n=this.wrapper.getBoundingClientRect(),s=i.clientX-n.left,r=i.clientX-n.left,a=s/n.width,l=r/n.height;return[a,l]};this.wrapper.addEventListener("click",i=>{const[n,s]=t(i);this.emit("click",n,s)}),this.wrapper.addEventListener("dblclick",i=>{const[n,s]=t(i);this.emit("dblclick",n,s)}),this.options.dragToSeek&&this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{const{scrollLeft:i,scrollWidth:n,clientWidth:s}=this.scrollContainer,r=i/n,a=(i+s)/n;this.emit("scroll",r,a)});const e=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{e(()=>this.reRender())}),this.resizeObserver.observe(this.scrollContainer)}initDrag(){q(this.wrapper,(t,e,i)=>{this.emit("drag",Math.max(0,Math.min(1,i/this.wrapper.getBoundingClientRect().width)))},()=>this.isDragging=!0,()=>this.isDragging=!1)}getHeight(){return this.options.height==null?128:isNaN(Number(this.options.height))?this.options.height==="auto"&&this.parent.clientHeight||128:Number(this.options.height)}initHtml(){const t=document.createElement("div"),e=t.attachShadow({mode:"open"});return e.innerHTML=`
  2. <style>
  3. :host {
  4. user-select: none;
  5. min-width: 1px;
  6. }
  7. :host audio {
  8. display: block;
  9. width: 100%;
  10. }
  11. :host .scroll {
  12. overflow-x: auto;
  13. overflow-y: hidden;
  14. width: 100%;
  15. position: relative;
  16. }
  17. :host .noScrollbar {
  18. scrollbar-color: transparent;
  19. scrollbar-width: none;
  20. }
  21. :host .noScrollbar::-webkit-scrollbar {
  22. display: none;
  23. -webkit-appearance: none;
  24. }
  25. :host .wrapper {
  26. position: relative;
  27. overflow: visible;
  28. z-index: 2;
  29. }
  30. :host .canvases {
  31. min-height: ${this.getHeight()}px;
  32. }
  33. :host .canvases > div {
  34. position: relative;
  35. }
  36. :host canvas {
  37. display: block;
  38. position: absolute;
  39. top: 0;
  40. image-rendering: pixelated;
  41. }
  42. :host .progress {
  43. pointer-events: none;
  44. position: absolute;
  45. z-index: 2;
  46. top: 0;
  47. left: 0;
  48. width: 0;
  49. height: 100%;
  50. overflow: hidden;
  51. }
  52. :host .progress > div {
  53. position: relative;
  54. }
  55. :host .cursor {
  56. pointer-events: none;
  57. position: absolute;
  58. z-index: 5;
  59. top: 0;
  60. left: 0;
  61. height: 100%;
  62. border-radius: 2px;
  63. }
  64. </style>
  65. <div class="scroll" part="scroll">
  66. <div class="wrapper" part="wrapper">
  67. <div class="canvases"></div>
  68. <div class="progress" part="progress"></div>
  69. <div class="cursor" part="cursor"></div>
  70. </div>
  71. </div>
  72. `,[t,e]}setOptions(t){if(this.options.container!==t.container){const e=this.parentFromOptionsContainer(t.container);e.appendChild(this.container),this.parent=e}t.dragToSeek&&!this.options.dragToSeek&&this.initDrag(),this.options=t,this.reRender()}getWrapper(){return this.wrapper}getScroll(){return this.scrollContainer.scrollLeft}destroy(){var t;this.container.remove(),(t=this.resizeObserver)===null||t===void 0||t.disconnect()}createDelay(t=10){const e={};return this.timeouts.push(e),i=>{e.timeout&&clearTimeout(e.timeout),e.timeout=setTimeout(i,t)}}convertColorValues(t){if(!Array.isArray(t))return t||"";if(t.length<2)return t[0]||"";const e=document.createElement("canvas"),n=e.getContext("2d").createLinearGradient(0,0,0,e.height),s=1/(t.length-1);return t.forEach((r,a)=>{const l=a*s;n.addColorStop(l,r)}),n}renderBarWaveform(t,e,i,n){const s=t[0],r=t[1]||t[0],a=s.length,{width:l,height:c}=i.canvas,o=c/2,d=window.devicePixelRatio||1,p=e.barWidth?e.barWidth*d:1,m=e.barGap?e.barGap*d:e.barWidth?p/2:0,u=e.barRadius||0,f=l/(p+m)/a,b=u&&"roundRect"in i?"roundRect":"rect";i.beginPath();let y=0,A=0,k=0;for(let w=0;w<=a;w++){const g=Math.round(w*f);if(g>y){const L=Math.round(A*o*n),N=Math.round(k*o*n),M=L+N||1;let T=o-L;e.barAlign==="top"?T=0:e.barAlign==="bottom"&&(T=c-M),i[b](y*(p+m),T,p,M,u),y=g,A=0,k=0}const v=Math.abs(s[w]||0),E=Math.abs(r[w]||0);v>A&&(A=v),E>k&&(k=E)}i.fill(),i.closePath()}renderLineWaveform(t,e,i,n){const s=r=>{const a=t[r]||t[0],l=a.length,{height:c}=i.canvas,o=c/2,d=i.canvas.width/l;i.moveTo(0,o);let p=0,m=0;for(let u=0;u<=l;u++){const f=Math.round(u*d);if(f>p){const y=Math.round(m*o*n)||1,A=o+y*(r===0?-1:1);i.lineTo(p,A),p=f,m=0}const b=Math.abs(a[u]||0);b>m&&(m=b)}i.lineTo(p,o)};i.beginPath(),s(0),s(1),i.fill(),i.closePath()}renderWaveform(t,e,i){if(i.fillStyle=this.convertColorValues(e.waveColor),e.renderFunction){e.renderFunction(t,i);return}let n=e.barHeight||1;if(e.normalize){const s=Array.from(t[0]).reduce((r,a)=>Math.max(r,Math.abs(a)),0);n=s?1/s:1}if(e.barWidth||e.barGap||e.barAlign){this.renderBarWaveform(t,e,i,n);return}this.renderLineWaveform(t,e,i,n)}renderSingleCanvas(t,e,i,n,s,r,a,l){const c=window.devicePixelRatio||1,o=document.createElement("canvas"),d=t[0].length;o.width=Math.round(i*(r-s)/d),o.height=n*c,o.style.width=`${Math.floor(o.width/c)}px`,o.style.height=`${n}px`,o.style.left=`${Math.floor(s*i/c/d)}px`,a.appendChild(o);const p=o.getContext("2d");if(this.renderWaveform(t.map(m=>m.slice(s,r)),e,p),o.width>0&&o.height>0){const m=o.cloneNode(),u=m.getContext("2d");u.drawImage(o,0,0),u.globalCompositeOperation="source-in",u.fillStyle=this.convertColorValues(e.progressColor),u.fillRect(0,0,o.width,o.height),l.appendChild(m)}}renderChannel(t,e,i){const n=document.createElement("div"),s=this.getHeight();n.style.height=`${s}px`,this.canvasWrapper.style.minHeight=`${s}px`,this.canvasWrapper.appendChild(n);const r=n.cloneNode();this.progressWrapper.appendChild(r);const{scrollLeft:a,scrollWidth:l,clientWidth:c}=this.scrollContainer,o=t[0].length,d=o/l;let p=Math.min(D.MAX_CANVAS_WIDTH,c);if(e.barWidth||e.barGap){const g=e.barWidth||.5,v=e.barGap||g/2,E=g+v;p%E!==0&&(p=Math.floor(p/E)*E)}const m=Math.floor(Math.abs(a)*d),u=Math.floor(m+p*d),f=u-m,b=(g,v)=>{this.renderSingleCanvas(t,e,i,s,Math.max(0,g),Math.min(v,o),n,r)},y=this.createDelay(),A=this.createDelay(),k=(g,v)=>{b(g,v),g>0&&y(()=>{k(g-f,v-f)})},w=(g,v)=>{b(g,v),v<o&&A(()=>{w(g+f,v+f)})};k(m,u),u<o&&w(u,u+f)}render(t){this.timeouts.forEach(a=>a.timeout&&clearTimeout(a.timeout)),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",this.wrapper.style.width="",this.options.width!=null&&(this.scrollContainer.style.width=typeof this.options.width=="number"?`${this.options.width}px`:this.options.width);const e=window.devicePixelRatio||1,i=this.scrollContainer.clientWidth,n=Math.ceil(t.duration*(this.options.minPxPerSec||0));this.isScrolling=n>i;const s=this.options.fillParent&&!this.isScrolling,r=(s?i:n)*e;if(this.wrapper.style.width=s?"100%":`${n}px`,this.scrollContainer.style.overflowX=this.isScrolling?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.options.splitChannels)for(let a=0;a<t.numberOfChannels;a++){const l=Object.assign(Object.assign({},this.options),this.options.splitChannels[a]);this.renderChannel([t.getChannelData(a)],l,r)}else{const a=[t.getChannelData(0)];t.numberOfChannels>1&&a.push(t.getChannelData(1)),this.renderChannel(a,this.options,r)}this.audioData=t,this.emit("render")}reRender(){if(!this.audioData)return;const t=this.progressWrapper.clientWidth;this.render(this.audioData);const e=this.progressWrapper.clientWidth;this.scrollContainer.scrollLeft+=e-t}zoom(t){this.options.minPxPerSec=t,this.reRender()}scrollIntoView(t,e=!1){const{clientWidth:i,scrollLeft:n,scrollWidth:s}=this.scrollContainer,r=s*t,a=i/2,l=e&&this.options.autoCenter&&!this.isDragging?a:i;if(r>n+l||r<n)if(this.options.autoCenter&&!this.isDragging){const c=a/20;r-(n+a)>=c&&r<n+i?this.scrollContainer.scrollLeft+=c:this.scrollContainer.scrollLeft=r-a}else this.isDragging?this.scrollContainer.scrollLeft=r<n?r-10:r-i+10:this.scrollContainer.scrollLeft=r;{const{scrollLeft:c}=this.scrollContainer,o=c/s,d=(c+i)/s;this.emit("scroll",o,d)}}renderProgress(t,e){if(isNaN(t))return;const i=t*100;this.canvasWrapper.style.clipPath=`polygon(${i}% 0, 100% 0, 100% 100%, ${i}% 100%)`,this.progressWrapper.style.width=`${i}%`,this.cursor.style.left=`${i}%`,this.cursor.style.marginLeft=Math.round(i)===100?`-${this.options.cursorWidth}px`:"",this.isScrolling&&this.options.autoScroll&&this.scrollIntoView(t,e)}}D.MAX_CANVAS_WIDTH=4e3;class G extends _{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}}var W=globalThis&&globalThis.__awaiter||function(h,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(o){try{c(i.next(o))}catch(d){r(d)}}function l(o){try{c(i.throw(o))}catch(d){r(d)}}function c(o){o.done?s(o.value):n(o.value).then(a,l)}c((i=i.apply(h,t||[])).next())})};class X extends _{constructor(t=new AudioContext){super(),this.bufferNode=null,this.autoplay=!1,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.audioContext=t,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return W(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(t){this.currentSrc=t,fetch(t).then(e=>e.arrayBuffer()).then(e=>this.audioContext.decodeAudioData(e)).then(e=>{this.buffer=e,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play()})}_play(){var t;this.paused&&(this.paused=!1,(t=this.bufferNode)===null||t===void 0||t.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.bufferNode.buffer=this.buffer,this.bufferNode.connect(this.gainNode),this.playedDuration>=this.duration&&(this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,this.playedDuration),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))})}_pause(){var t;this.paused||(this.paused=!0,(t=this.bufferNode)===null||t===void 0||t.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime)}play(){return W(this,void 0,void 0,function*(){this._play(),this.emit("play")})}pause(){this._pause(),this.emit("pause")}setSinkId(t){return W(this,void 0,void 0,function*(){return this.audioContext.setSinkId(t)})}get playbackRate(){var t,e;return(e=(t=this.bufferNode)===null||t===void 0?void 0:t.playbackRate.value)!==null&&e!==void 0?e:1}set playbackRate(t){this.bufferNode&&(this.bufferNode.playbackRate.value=t)}get currentTime(){return this.paused?this.playedDuration:this.playedDuration+this.audioContext.currentTime-this.playStartTime}set currentTime(t){this.emit("seeking"),this.paused?this.playedDuration=t:(this._pause(),this.playedDuration=t,this._play()),this.emit("timeupdate")}get duration(){var t;return((t=this.buffer)===null||t===void 0?void 0:t.duration)||0}get volume(){return this.gainNode.gain.value}set volume(t){this.gainNode.gain.value=t,this.emit("volumechange")}get muted(){return this._muted}set muted(t){this._muted!==t&&(this._muted=t,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}getGainNode(){return this.gainNode}}var S=globalThis&&globalThis.__awaiter||function(h,t,e,i){function n(s){return s instanceof e?s:new e(function(r){r(s)})}return new(e||(e=Promise))(function(s,r){function a(o){try{c(i.next(o))}catch(d){r(d)}}function l(o){try{c(i.throw(o))}catch(d){r(d)}}function c(o){o.done?s(o.value):n(o.value).then(a,l)}c((i=i.apply(h,t||[])).next())})};const Z={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3};class R extends V{static create(t){return new R(t)}constructor(t){const e=t.media||(t.backend==="WebAudio"?new X:void 0);super({media:e,mediaControls:t.mediaControls,autoplay:t.autoplay,playbackRate:t.audioRate}),this.plugins=[],this.decodedData=null,this.subscriptions=[],this.mediaSubscriptions=[],this.options=Object.assign({},Z,t),this.timer=new G;const i=e?void 0:this.getMediaElement();this.renderer=new D(this.options,i),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();const n=this.options.url||this.getSrc();n?this.load(n,this.options.peaks,this.options.duration):this.options.peaks&&this.options.duration&&this.loadPredecoded()}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{const t=this.getCurrentTime();this.renderer.renderProgress(t/this.getDuration(),!0),this.emit("timeupdate",t),this.emit("audioprocess",t)}))}initPlayerEvents(){this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{const t=this.getCurrentTime();this.renderer.renderProgress(t/this.getDuration(),this.isPlaying()),this.emit("timeupdate",t)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop()}),this.onMediaEvent("emptied",()=>{this.timer.stop()}),this.onMediaEvent("ended",()=>{this.emit("finish")}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(t,e)=>{this.options.interact&&(this.seekTo(t),this.emit("interaction",t*this.getDuration()),this.emit("click",t,e))}),this.renderer.on("dblclick",(t,e)=>{this.emit("dblclick",t,e)}),this.renderer.on("scroll",(t,e)=>{const i=this.getDuration();this.emit("scroll",t*i,e*i)}),this.renderer.on("render",()=>{this.emit("redraw")}));{let t;this.subscriptions.push(this.renderer.on("drag",e=>{this.options.interact&&(this.renderer.renderProgress(e),clearTimeout(t),t=setTimeout(()=>{this.seekTo(e)},this.isPlaying()?0:200),this.emit("interaction",e*this.getDuration()),this.emit("drag",e))}))}}initPlugins(){var t;!((t=this.options.plugins)===null||t===void 0)&&t.length&&this.options.plugins.forEach(e=>{this.registerPlugin(e)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(t=>t()),this.mediaSubscriptions=[]}setOptions(t){this.options=Object.assign({},this.options,t),this.renderer.setOptions(this.options),t.audioRate&&this.setPlaybackRate(t.audioRate),t.mediaControls!=null&&(this.getMediaElement().controls=t.mediaControls)}registerPlugin(t){return t.init(this),this.plugins.push(t),this.subscriptions.push(t.once("destroy",()=>{this.plugins=this.plugins.filter(e=>e!==t)})),t}getWrapper(){return this.renderer.getWrapper()}getScroll(){return this.renderer.getScroll()}getActivePlugins(){return this.plugins}loadPredecoded(){return S(this,void 0,void 0,function*(){this.options.peaks&&this.options.duration&&(this.decodedData=x.createBuffer(this.options.peaks,this.options.duration),yield Promise.resolve(),this.renderDecoded())})}renderDecoded(){return S(this,void 0,void 0,function*(){this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData))})}loadAudio(t,e,i,n){return S(this,void 0,void 0,function*(){if(this.emit("load",t),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,!e&&!i){const s=r=>this.emit("loading",r);e=yield F.fetchBlob(t,s,this.options.fetchParams)}if(this.setSrc(t,e),n=(yield Promise.resolve(n||this.getDuration()))||(yield new Promise(s=>{this.onceMediaEvent("loadedmetadata",()=>s(this.getDuration()))}))||(yield Promise.resolve(0)),i)this.decodedData=x.createBuffer(i,n);else if(e){const s=yield e.arrayBuffer();this.decodedData=yield x.decode(s,this.options.sampleRate)}this.renderDecoded(),this.emit("ready",this.getDuration())})}load(t,e,i){return S(this,void 0,void 0,function*(){yield this.loadAudio(t,void 0,e,i)})}loadBlob(t,e,i){return S(this,void 0,void 0,function*(){yield this.loadAudio("blob",t,e,i)})}zoom(t){if(!this.decodedData)throw new Error("No audio loaded");this.renderer.zoom(t),this.emit("zoom",t)}getDecodedData(){return this.decodedData}exportPeaks({channels:t=2,maxLength:e=8e3,precision:i=1e4}={}){if(!this.decodedData)throw new Error("The audio has not been decoded yet");const n=Math.min(t,this.decodedData.numberOfChannels),s=[];for(let r=0;r<n;r++){const a=this.decodedData.getChannelData(r),l=[],c=Math.round(a.length/e);for(let o=0;o<e;o++){const d=a.slice(o*c,(o+1)*c),p=Math.max(...d);l.push(Math.round(p*i)/i)}s.push(l)}return s}getDuration(){let t=super.getDuration()||0;return(t===0||t===1/0)&&this.decodedData&&(t=this.decodedData.duration),t}toggleInteraction(t){this.options.interact=t}seekTo(t){const e=this.getDuration()*t;this.setTime(e)}playPause(){return S(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(t){this.setTime(this.getCurrentTime()+t)}empty(){this.load("",[[0]],.001)}setMediaElement(t){this.unsubscribePlayerEvents(),super.setMediaElement(t),this.initPlayerEvents()}destroy(){this.emit("destroy"),this.plugins.forEach(t=>t.destroy()),this.subscriptions.forEach(t=>t()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}}const z="_playSection_s22k3_1",Y="_audioSection_s22k3_4",K="_audioContainer_s22k3_10",J="_audioBox_s22k3_17",j="_audioPan_s22k3_27",$="_audioImg_s22k3_40",tt="_audioPoint_s22k3_46",et="_audioZhen_s22k3_57",it="_controls_s22k3_67",st="_hide_s22k3_84",nt="_actionBtn_s22k3_87",ot="_time_s22k3_95",rt="_slider_s22k3_109",at="_userSection_s22k3_122",ct="_userLogo_s22k3_126",ht="_userInfo_s22k3_133",dt="_name_s22k3_133",lt="_sub_s22k3_139",ut="_iconMember_s22k3_145",pt="_zan_s22k3_150",mt="_iconZan_s22k3_160",ft="_musicSection_s22k3_164",gt="_musicName_s22k3_170",vt="_musicTag_s22k3_178",bt="_musicDesc_s22k3_189",At="_likeSection_s22k3_195",yt="_likeTitle_s22k3_201",wt="_likeItem_s22k3_219",Ct="_bottomSection_s22k3_246",kt="_bottomShare_s22k3_253",Et="_btnEdit_s22k3_276",St="_popupContainer_s22k3_286",_t="_popupContent_s22k3_289",Dt="_popupBtnGroup_s22k3_297",Tt="_cellGroup_s22k3_313",xt="_cell_s22k3_313",Wt="_cellImg_s22k3_325",Lt="_cellImage_s22k3_366",Mt="_cellTitle_s22k3_376",Bt="_users_s22k3_382",Rt="_userImg_s22k3_386",Pt={playSection:z,audioSection:Y,audioContainer:K,audioBox:J,audioPan:j,audioImg:$,audioPoint:tt,audioZhen:et,controls:it,hide:st,actionBtn:nt,time:ot,slider:rt,userSection:at,userLogo:ct,userInfo:ht,name:dt,sub:lt,iconMember:ut,zan:pt,iconZan:mt,musicSection:ft,musicName:gt,musicTag:vt,musicDesc:bt,likeSection:At,likeTitle:yt,likeItem:wt,bottomSection:Ct,bottomShare:kt,btnEdit:Et,popupContainer:St,popupContent:_t,popupBtnGroup:Dt,cellGroup:Tt,cell:xt,cellImg:Wt,cellImage:Lt,cellTitle:Mt,users:Bt,userImg:Rt},Nt="data:image/png;base64,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",It="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAA7ZJREFUWEftl11ok1cYx39P1qYfRpNeqJVR0dQrtxI6B6Mr1Aq76NVQvFDGeqFQaGI2WFGzXhkcNElLnHSb3c1EtLtQsMwP8EKHF5vS4kBoSwdDJ5XWuoZZaNKm1TTvOHkNXZKmyWKS9mIvhMDLOef5nf/5P+d5XmGdPbLOeHgjIM3r/ZCZmW8Jh22Ulr7EaLzB9u1fiN0+metGcwbS/P56nj4d4tWr0oTg5eW/U1f3nhw5spALVO5ALtcAweABampg3z5YWIBbtyAYhK1bnXLq1HfFBvqLYHAL+/dDdbUee3gY7t8Hk+kn6e4+UFygkyeDhEImDh8Gi0WPPTEBN2+C2fyneDy1RQPSzp2rYmzsbzRNOHoUSl/bKBCAq1dh06aAeL1bigd0+nQ7z5/3sXkzHDy4HPfZM7h+XSk0Lh7PjqIAaW63gVDoD+bna2lshLq65biPH8Pt2+oIB6Wrq6FYQL1MT39GZSUx/xiNy3GVoZWxN2z4Wnp6OgoOpLndHgIBV8w7LS2wI+lULl+GmRmwWj+V48d/LBiQduZMC1NTbubmPogFaWgAmy0x3osXcOWK/q6yMoxINAVIRENkAU27S3X1V9LRMZI8JuFi1Nrb38Zg8ALvxlRQj1qkrMzG4qLEjqepCXbtSt380BA8fJi9KEbjS7ZtaxSX67d/T0oEstvvItKcsmp5uX4THzoEVVUrB52fh0gENG11qHAYHjyAyUl1gf4i3d1N6YGOHVtE04zs2aOUWR43OqoDtbYqw2avQrqRCv7iRZUQS3L2bEl6IIdjCTCwd28i0OBgfoHU5i5cgJKSqPT2vvXfgZQ/lNT5Umh8XC/EGzc+EZ/PmhmoOclG+QaKJ0BFxTfi93++9kDXrsHUFNTU2KWz8/vMQMkeyqdC0SicP68yUqO+vlba2p6sBqQuM0kxdT6BpqdhYEBl66z09JhXvxgdjsIDjYzAvXvK0DfE5/t47YFUN6C6AovlS+nq8mUHVMgsu3QJ5uZg9+6PxOn8eW2BQiHo71c3dASLpUzc7pQCnFjLHA69EBVKoUeP4M4d1VEOi8eT1C7oWhUXSJlZmbqiwit+f+dKpS4ZSM8y1WLEi6v6z0ctU99rKt1VCdq5s1VOnOjPBmgUeCdt+2E2g8GQW7WfnYWlJdW8jWIy2VbyT+qROZ3vE43+8BpKqaf/4v1QbijxWRpm869YrZ9IW9tEuqWy+pTW+vqaiUTK0vIYDJnWiWI0jq0GEl8700JvpkkOs/8HyiTaulPoHxnTiDQIfUMPAAAAAElFTkSuQmCC",Ot="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAh5JREFUWEfN2E1rE1EUBuD3ncRs/Kp/wvwD1yL9A4J0pZR8uBJLu8mqBUUrrtq1AeuuLgR3ceeqQiuKxoXFZKLgIu5aUIK20rmvDDGSTu3MpJPJ3Gxz7j3PnEnO/SAs+zDoKT5WUQ4ewmha5IFDvFQe99o3+GES9kMgH2OoLQJTw8kFeCQfnfKw9LHK3TRhh0AX1/Qc0NWQhDskF1tfUccdmjRgQdB3QOeiE/E9hLl2ha+iY0eLCICMRhgukuswqLUq/DbCuNDQJKD+xEKPDu/nTmN1e4a/k8KSg/4KBLgk59slvkiCGhvoH4JoeB7nP1fZOQls/KC+Yh/gSv4XHmzfYm8UWFqggaErsuaWuB4XlTZo4NgQOeeW2IyCTQoEv9sDqheMsxjW7ScGGqrMDsGl1hnUMUMvWLEsQANDk+LNVoVvh1FZgnzHnpPjlU+z3Bygsgb5jjftsnPJJhBMgec71/nDR9lQIZkCp2wCWfXK9gRedst8bcFviE0DVDplvsv6b29HY+wvHawXDGxYOrghwobFlV0RVmw/9kGu5n9iOfsNGtk4ABa+lOhG7X3+9/3YOjVB1xgsuFU2TgIZXx8SegCX82exkvUxSISeKufU2rPsJqnK8Y3xiXYhXYgxeRPi7dSP0sU1PRN0LQQU2mVjPEhkyJHrGDnYDFYp7gY9MluMgOMvrKRpgIJ/YQXcjXOEiZEvMuQIKHJEygF/ANAjEDRXmZYIAAAAAElFTkSuQmCC",Ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAAXNSR0IArs4c6QAAAPJJREFUWEftmMENwjAMRe1wB7FExAgMwAQwAFK3YAK2qMQAMAEDMALKEgju1BWIiiaUxu4Jid9bFOfn9ymOWzMlz2wnvrrTlogWr6mjG9HmvOaQxlrGWl1uiz4XVXIioWm0GdPFOZ4PNWXRjQz5UvZEsux+cz6EglcWKk2sRTc1dCWS8RdDt1DwZKAhtW5iqJK+DUPhonitOV/qdWGoi2qbPAiBUBcBZFnuPgIhEGoIoJZZsiF3btrzFl3UMtQy1DJLdr3/OvBN3c8N91DuXIHQPxESdVMgRyWu9nrd327HWBpLFkIW3Y/2irb1ZjH0iNXq1pYVWDTMjzwHAAAAAElFTkSuQmCC";var P={exports:{}},C=P.exports={};C.nextTick=function(){var h=typeof window<"u"&&window.setImmediate,t=typeof window<"u"&&window.postMessage&&window.addEventListener;if(h)return function(i){return window.setImmediate(i)};if(t){var e=[];return window.addEventListener("message",function(i){var n=i.source;if((n===window||n===null)&&i.data==="process-tick"&&(i.stopPropagation(),e.length>0)){var s=e.shift();s()}},!0),function(n){e.push(n),window.postMessage("process-tick","*")}}return function(n){setTimeout(n,0)}}();C.title="browser";C.browser=!0;C.env={};C.argv=[];C.binding=function(h){throw new Error("process.binding is not supported")};C.cwd=function(){return"/"};C.chdir=function(h){throw new Error("process.chdir is not supported")};var Qt=P.exports;export{R as W,Ut as a,Qt as b,Nt as c,It as d,Ot as i,Pt as s};