diff --git a/_includes/mplayer.html b/_includes/mplayer.html index 72fb157..ac677f1 100644 --- a/_includes/mplayer.html +++ b/_includes/mplayer.html @@ -1,19 +1,31 @@ <div id="player"> <span id="player-text"></span> - <a href="javascript:void(0)" onClick="stopPlayer()">stop</a> - <a href="javascript:void(0)" onClick="MIDIjs.play('/assets/mid/canyon.mid')">play</a> + <a id="player-stop" href="javascript:void(0)">stop</a> + <a id="player-play" href="javascript:void(0)">play</a> </div> -<script> - var duration = 0; - function updatePlayerStatus(msg) { - document.getElementById("player-text").innerHTML = msg; - } - function stopPlayer() { - MIDIjs.stop(); - document.getElementById("player-text").innerHTML = ""; - } - MIDIjs.message_callback = updatePlayerStatus; +<audio id="interadio" src="https://radio.erb.pw/listen/subspace/radio.mp3"></audio> +<script src='/assets/js/icystream.js'></script> + +<script> + var player = document.getElementById('interadio'); + var playertxt = document.getElementById('player-text'); + console.log(player); + console.log(playertxt); + + function playEr(){ + player.play(); + playertxt.style.display = 'inline'; + }; + + function stopEr(){ + player.pause(); + playertxt.style.display = 'none'; + }; + + stopEr(); + document.getElementById('player-stop').onclick = stopEr; + document.getElementById('player-play').onclick = playEr; </script> diff --git a/_layouts/default.html b/_layouts/default.html index 50fe00d..a1aab85 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -8,7 +8,6 @@ navbar: topnav <title>{{ page.title }}</title> <link rel="stylesheet" href="/assets/css/styles.css"> <link rel="stylesheet" href="https://webcomicring.org/js/comicring.css"> - <script type='text/javascript' src='//midijs.net/lib/midi.js'></script> </head> <body> <img src="/assets/images/crt1.png" class="overlay"> diff --git a/assets/js/icystream.js b/assets/js/icystream.js new file mode 100644 index 0000000..696a91f --- /dev/null +++ b/assets/js/icystream.js @@ -0,0 +1,24 @@ +async function readConstant(readableStream) { + const reader = readableStream.getReader(); + const re = /StreamTitle='(.*)'/; + + while (true) { + const { done, value } = await reader.read(); + if (done) {break;} + + let cur = new TextDecoder("utf-8").decode(value); + var fin = re.exec(cur); + if (!fin) { continue; } + + fin = fin[1].split('\'')[0]; + document.getElementById("player-text").innerHTML = fin; + } +} + + +var opts = { headers: {} }; +opts["headers"]["Icy-Metadata"] = "1"; +// we're using the 64kbps version to save a bit of bandwidth +let mustr = fetch("https://radio.erb.pw/listen/subspace/radio-64.mp3", opts) +mustr.then((res) => { readConstant(res.body);}) +