icecast-metadata-player
Version:
Simple to use Javascript class that plays an Icecast stream with real-time metadata updates
115 lines (114 loc) • 41.3 kB
JavaScript
/*!
* Copyright 2021-2024 Ethan Halsall
* https://github.com/eshaz/icecast-metadata-js
*
* This file is part of icecast-metadata-player.
*
* icecast-metadata-player free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* icecast-metadata-player distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>
*/
(self.webpackChunkIcecastMetadataPlayer=self.webpackChunkIcecastMetadataPlayer||[]).push([[993],{178:(t,s,i)=>{"use strict";i.d(s,{D4:()=>e});const r=(t,s=4294967295,i=79764919)=>{const r=new Int32Array(256);let e,n,h,o=s;for(e=0;e<256;e++){for(h=e<<24,n=8;n>0;--n)h=2147483648&h?h<<1^i:h<<1;r[e]=h}for(e=0;e<t.length;e++)o=o<<8^r[255&(o>>24^t[e])];return o},e=(t,s=r)=>{const i=t=>new Uint8Array(t.length/2).map((s,i)=>parseInt(t.substring(2*i,2*(i+1)),16)),e=t=>i(t)[0],n=new Map;[,8364,,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,,381,,,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,,382,376].forEach((t,s)=>n.set(t,s));const h=new Uint8Array(t.length);let o,a,c,M=!1,f=0,u=42,y=t.length>13&&"dynEncode"===t.substring(0,9),l=0;y&&(l=11,a=e(t.substring(9,l)),a<=1&&(l+=2,u=e(t.substring(11,l))),1===a&&(l+=8,c=(t=>new DataView(i(t).buffer).getInt32(0,!0))(t.substring(13,l))));const d=256-u;for(let s=l;s<t.length;s++)if(o=t.charCodeAt(s),61!==o||M){if(92===o&&s<t.length-5&&y){const i=t.charCodeAt(s+1);117!==i&&85!==i||(o=parseInt(t.substring(s+2,s+6),16),s+=5)}if(o>255){const t=n.get(o);t&&(o=t+127)}M&&(M=!1,o-=64),h[f++]=o<u&&o>0?o+d:o-u}else M=!0;const A=h.subarray(0,f);if(y&&1===a){const t=s(A);if(t!==c){const s="Decode failed crc32 validation";throw console.error("`simple-yenc`\n",s+"\n","Expected: "+c+"; Got: "+t+"\n","Visit https://github.com/eshaz/simple-yenc for more information"),Error(s)}}return A}},655:(t,s,i)=>{"use strict";i.d(s,{FLACDecoderWebWorker:()=>m});var r=i(209),e=i(317);function n(t){var s,i,r,e=t=>console.log(t),h=t=>console.error(t);function o(){}var a={};for(var c=[null,[],[]],M=new TextDecoder,f=(t,s)=>{var i=c[t];0===s||10===s?((1===t?e:h)(((t,s=0,i=NaN)=>{for(var r=s+i,e=s;t[e]&&!(e>=r);)++e;return M.decode(t.buffer?t.subarray(s,e):new Uint8Array(t.slice(s,e)))})(i)),i.length=0):i.push(s)},u=new Uint8Array(123),y=25;y>=0;--y)u[48+y]=52+y,u[65+y]=y,u[97+y]=26+y;u[43]=62,u[47]=63;var l,d,A,b,m,v,U={c:()=>function(t){throw t}(""),b:()=>{},d:(t,s)=>{if(a[t]&&(clearTimeout(a[t].id),delete a[t]),!s)return 0;var i=setTimeout(()=>{delete a[t],(()=>{v(t,performance.now())})()},s);return a[t]={id:i,timeout_ms:s},0},e:t=>{s.length;return!1},g:t=>52,i:(t,s,i,r)=>52,f:function(t,s,i,r){var e;return s=(e=s)<-9007199254740992||e>9007199254740992?NaN:Number(e),70},h:(t,r,e,n)=>{for(var h=0,o=0;o<e;o++){var a=i[r>>2],c=i[r+4>>2];r+=8;for(var M=0;M<c;M++)f(t,s[a+M]);h+=c}return i[n>>2]=h,0},a:t=>{throw`exit(${t})`}};n.wasm||Object.defineProperty(n,"wasm",{get:()=>String.raw`dynEncode0179c5946f1dÄ>º}ÊÄ%®z¦IGUn5Or/ñ)÷6yú=}{ üÎ
wûø@¸îqÐdµ»ôæ¾Xf+gúÕe2ëþÞ5=}\Î>ä=Muj ðÎX¼¬·¹nuí¸3_«ßLÏýU¯= C?hXi°$²OƬ´KeSäÔkf
®RJþÊo<̤@8@uw÷©«ýºGßßµm¨7¬¬¬¬¬¬qNЮ´S.^GïPíðNpήæîTVþ§¨Qísüee+.ÜèFfÖZç_¿og_soß06 RÞÑÜfÌÔ%Â/eVéw= ¨Éî6ê@U/'fÈ8vpçPûl¤g:çUf;RÝbS¤Eû8ÖHÕ·&UÞÀ÷ØY-+aRÑÈçAØ%[¾"÷
<=MÿQÆwéÚs28aÒ«vF¶Ìþ¹RQÄD¤]È&§,Bm¿ì 2£ 5Ñ©ªM= ôÌîAêrÚmI*=MÌ= !©oMc¾B Îïû$VÅPÆ= ¸À5JvÝ2¼V7= A3=}»KGvûÚuZaÆ ÇgdRlÃÏÛü"+ÝÃÄ^[ªÒ}
O»LÖíb{þB\ÑÀ¡|æ -ʪÇo£fñ®ªµ£/APãç«/åJ'2Å/õ(,rb9
z!¥rCêÆª=}ðõCg¨¬ç:þ
<
AÖº²Þ§)êÔÐb¢M%¤ñMåÒ{|3ºàú§4ÖÿÖÀ<¶iyÒ)C&y%ÂàE÷fhe-E8À´5ð ÑBh1dGv¶ì×3ù>ýï ïDfh©E$¨q2«s,Z§OY|pø2!ç¡ÆÅjËÁ8uìw<|+åòÇT\ÆÒ·1(*ÍÍ:¦B£Xz%üí¸uÒYh7Q$ûÓþÔÂ~õ"RàýöxUx óaÇ&?"ÞlPzEácw*Ñ&UüBÊêp¼yµ5?!Ôk¾=MÚ0lvaô²ÒÀJ7PEq~𹾿~s¼£ÿ&¤ÀÌDïvÒ±nIº¨þo
â&¤gðJ)CUø"¥{'¥DÀq8i0¶7Ûá]»G@7P,Ü}iÏǶ*=MXúªÄ;Ë4Òç¿23¸Y£+Q&² _O¥.Ùó7Ø·O´@ÀGnÅcܰçb%6¨c89 e+éôì+àRÄ= 'Ù®³tú#sJ¡)¬kF?ßÊ ÈV¢Û/5p}ÞDÀ÷h§¨±jAè´ÀÕÁvë\J^[=}ª$Æ~DüÎf sþÎÊ ¯.óeQ*¶?©»û3+´M-Í$3dV%}rö\£q_Z[U&ÌJûDaÃ=}=M
¸¯KÌaQy¯BnãgSMÃÏbPlÿõräv<ù%ôo !ÂoêÛµeÒ\???|
3?V'@J*ÆíåHíü¿?Õe°<áZ6¨ eÑæ²sîàV¯]4¿P¨N²Òëî幸Ök𮳦¥oæßB.´æÀHn&ãcæs|J<5JJóM²J¹.ÐbÍáÝïºÀT= /ÓEáJP8Ô.Ï-K/¿?KYÙm¼»Û ºUF¸I(¾~9"'Ù0|ÏÝD(è-ü¥ø~÷»Ú[= Oó[^ó[îÉíÜòay c-s6|T2^ë+ágOMJ¦ÐÌ"gÿ0ðÑ,<·oÄ([±ðhüÚmá[ÿ·l µPNâLöQ$òçéUi1¨(wÀÚdöé±ì®~çiUi¨·sÙ£|
|çä=MüQ KÅU=}¢ zjePÿ«
®ÑXtBdØþýÛ\ÿ¬tS%é馲ZiB¤§õè×ü¼Ùù4ÒU¥)°Ô¡[MF@Rê£Çµ_4¨e
Ô£º:j|híÚA¸qî¿JA?j5= 6j,C,ÂquâUÓÌù-°Ì í$±y,®)h¶\ÒÔýý3PvqÈô¨[áïoìl:pþ¥L¹/jéÔ_¼ZyÒgp%uyÊ÷YéÐ+èõch÷@ܳNyÓSËêkÆÍ×s$¤Ö¯¡gëÃl\¸õ:ïßOÉàîLcl8ip4n!2qªdªI&à'u^$ÒĺösCNLèËÉV2@!À}Ü/¾lØøsBÀ4!ÏÉ62m Hxs(É¢q3®nÐØ6eÌß½9ÿ_è×c?àq³mn° ÷ñ³Ôhdc¤XṤ¹æÏÅÄ wMjP7(Ô Ü!¸xs@MÒìSÜù{¶±ßAdòG©~ ·gèÞ6Ë= &m?UõlH7DöùÍ5GE¿©z·s´5Lgzã(6eQ ¬ÑÐU|ÆN+w=}rÄvH éï
g²XóU4F)þ,@Í*1@õA<;³50xgôèîn×ñLÜñ Çx_Ë´µh°HóD V±W¥isÜñ@Øvrså1ðõZk¤Uôöì1Æd_ªI 8p*hãºVm8óah¥Û#LÃÜ:OÌ\¢{f5xL×ÕNÏ=MÿP7_¬= ¡^Rù:ôkDCºçQÓaÕò^H\*Ê0Oe9NÛ»ý?1 èè1ÛçßÉXû7^X4(({mtØøhBGi£¹·rß{$Ïà[ÿÂE8ntb¹Va÷tUX!S&f= ÕrW9ýfêÄXvN(8ìBd5L>PÓ÷gll<É|k¥ð÷øZè¼é+OØ~%êhWlm µ¢-1Ø
GÉcÆso÷Z\'Ï¿JOQÒC:âïL·rN= ÔýzbÙr+¢Ô%
÷BÂ2þásL1QéÕeGÁàµGð8VÔJ
4üÍ~Å¿³u¶òäí¤ Ïuåvw¥X¿Ê½G×lf9<ÎÿÞ¸Ãö©?
Æ;°bÝW¥ç uXPíK0bÝW¥g-´-°baã³"bP¡ÚzEÜÅK½;â;;ÆÄ¡Z+Üj! Ï%a˧PÊót ë.ùj×8®õa°dgáiÝÆñ+.iÝeXÜIiý¯µRÓñ«ÈIiý¯µúûýÒ|òý¡û¬Iý¡ÝôNðBëí>¢*0ÈÂ÷efè+@TÍ8z¸l|Õ^vÇ\@kT°ö³µ6Áë]ø´æM'U;]Ç#øÂïÑûÆHxñâ4*JvIÔ§ï{LuÇí^EÉßó3þ×#X°+Ú©£ÚΣ
3Ñ@nû,aßÍâTT¦³Ëâ÷JF$-9rðÓí°ËbßgߣVãJVÃ6ç(Ãø3aw=MöÔµå6tZÕY´Fo§~úåJõPN=}à¼qµ²
¥¥
+§
µK#¦ïGr^N@829¡*¤Ê!ÕÂ'u¯kÖ]!ÁÈX4
öäÌÞDí]û*+ÊðÅdSõp§= ÂOø/VÚ5 ão¿gÃHÝg1
?f®èÄ¿+YÆO!.àP'^&ßÁ×¹© "ÔQMªqNåèTñÿÿ=M*àtÆHrȰRö²è¿"ò:7f£ÌÂeèT)$wþ¯ãF£XÔ³]º
=M ñH<fV6â+J®ØWÄr"áXÄ*QÔ0u¿l0ì ñÌÁeP°.ïð±jæCú¼Ûåd£N%Ø7ÖÎ8bÎ$¨ÕÀndØ.³ÖÀnÐ&·1Çcï¦hrt$-I8}¯û9Á"ùèu³õÁU
}M»= W$=M0vC£Éÿnb-6"Ym
û+Ú¿¬CÞÍ@JÜÛ©Ec¾ #RÛUÓ¿=M.1¬Fp?_ôIõLõè<°Ûw"ãc?c_'L÷¨aðìõKx#
ûì9Ë9n©HjYÛ4I髼öRªð!RJ~2´{×ÌÀÀô¬K ZíâÌ·ýÛßÛ¯ÕýªU Q«-éeÚª_.½(+}¥çªfS¦Ö4>-0ïeLVÛSoL¯0W©.M&zô¤uì¬WÖ»ÖX¥ðM+ôâzFî]Që½g ¡i&´Àºu¬2zdC~ÞgÞ#è¶î%px\Má3_Õ=}3ëL\4°×§Íz²v3cËúIäB>É@â°vx½¨ÉhùJv|Ù]î
wXÿËgí
Þá+ë51&»ÂWpÿk¢W~÷äIIJsi5²ó!"u]¾nØmIè±v¥ß'<b K]÷?È«
án§ð*Õh(ôÚzº)¢Åà&V?Å#6ä-8¢va
²³å:µÐ GÀP¡´+û¥-d>o6.øç3]p4¡ÓbÜá®Ì äèõ&u7.0å×ÑcæÑ¦"à6Õ9Þ$¡Óu=MXÏÀnêÆ(H(ô¬áâ+A¨,¼Â cCÌîGcO_»Ô
ú«ÒÛ:{L dØÙ¶äóßB'ÞŬôÖDeÎÞÅeÑ»â®Ôc8åܸxì*9ë÷N5zð$÷|E
ÛÖ/B?\z£8ê|PØjñÚUµèsbAçÉ·¶ Æ@< O´y63Ü4Qtùý= OGÍÔAhN
ÂXÛbõxGàx4EKòY¸,]ò,£PEµ¡ç2¡_3urÚh¡Ä´*E¿dãÓ¨*:´Ä vÖÇî
y3ñ°þmKV®%£Òµ0WVãÑ6ÇPn]æRÆréþP e¦Dàq8À1Øl¿{+lqà)B£f3W0n/]Jê§xï¦÷ú~BLïNÎØ°þ¯ êa°Àã÷ÃÁ@[Müj<