diff options
author | Anton Luka Šijanec <anton@sijanec.eu> | 2023-03-19 23:08:44 +0100 |
---|---|---|
committer | Anton Luka Šijanec <anton@sijanec.eu> | 2023-03-19 23:08:44 +0100 |
commit | 907ad4d0d911f12ddbde1ff5847d808d84d6027d (patch) | |
tree | dcde4f89ee1bd8709c8d271e69c8e0b6cf7649c0 /radio/radio.php | |
parent | začetki rusta (diff) | |
parent | radio.php (diff) | |
download | travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar.gz travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar.bz2 travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar.lz travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar.xz travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.tar.zst travnik-907ad4d0d911f12ddbde1ff5847d808d84d6027d.zip |
Diffstat (limited to 'radio/radio.php')
-rw-r--r-- | radio/radio.php | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/radio/radio.php b/radio/radio.php new file mode 100644 index 0000000..28eecc0 --- /dev/null +++ b/radio/radio.php @@ -0,0 +1,67 @@ +<?php +if ($_SERVER["REQUEST_SCHEME"] == "https") { + header("location: http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]); +} +$sock = stream_socket_client("unix:///tmp/ls", $errno, $errstr); +if (!empty($_REQUEST["s"])) { + fwrite($sock, "travnik.skip\r\n"); + header("location: ?p=1"); + exit("preusmeritev na ?p=1"); +} +fwrite($sock, "uptime\r\n"); +usleep(100000); +$uptime = trim(str_replace("END", "", fread($sock, 256))); +fwrite($sock, "travnik.remaining\r\n"); +usleep(100000); +$remaining = trim(str_replace("END", "", fread($sock, 256))); +fwrite($sock, "travnik.metadata\r\nquit\r\n"); +$buf = ""; +while (!feof($sock)) { + $buf .= fread($sock, 200000); +} +$metadata = str_replace("\r", "", trim(str_replace("Bye!", "", str_replace("END", "", $buf)))); +?> +<meta name=viewport content='width=device-width, initial-scale=1.0'> +pretok v najvišji kvaliteti brez izgub (FLAC) -- prenaša veliko podatkov: +<br> +<audio controls> + <source src=http://tranzistor.sijanec.eu:8000/travnik type="audio/ogg"> +</audio> +<br> +pretok v kompresirani kvaliteti (OPUS) -- manj prenesenih podatkov: +<br> +<audio controls> + <source src=http://tranzistor.sijanec.eu:8000/travnik.opus type="audio/ogg"> +</audio> +<br> +radijski pretok neprestano teče že <?= htmlspecialchars($uptime) ?> +<br> +do konca komada je še <?= gmdate("H:i:s", intval($remaining)) ?>. +<br> +<form method=post> +<input type=submit name=s value="preskoči na naslednji komad (preberi pravila spodaj)" /> +</form> +<?php +if (!empty($_REQUEST["p"])) { +?> +<b>poročilo: zahteva za preskok komada je bila uspešno poslana. počakaj nekaj sekund, da se zgodi crossfade. preveri, da si na koncu pretoka!</b> +<?php +} else { +?> +pravila preskakovanja -- kdaj je dovoljeno preskočiti komad: +<ul> +<li> če se ne predvaja glasba, temveč govor +<li> če je posnetek slabe kvalitete (slabi posnetki iz kaset, slabi live/nestudijski posnetki, ...) +<li> če si edini poslušalec radia (preveri <a href=http://tranzistor.sijanec.eu:8000>tukaj</a>) +<li> če je na števcu do konca komada več kot 5 minut (pred pritiskom gumba <a href=?>ozveži stran</a>, da se prikaže posodobljen števec) +</ul> +radio namreč lahko posluša več ljudi, preskok komada pa se seveda zgodi pri vseh, kar je lahko moteče. v primeru prevelikega subjektivnega ocenjevanja bom funkcijo odstranil. +<?php +} +?> +<br> +metapodatki o komadu in o prej predvajanih komadih: +<br> +<pre> +<?= htmlspecialchars(implode("\n", array_reverse(explode("\n", $metadata)))) ?> +</pre> |