De huidige nummer van een IceCast naar een HTML/php omzetten

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Dreambox1964
  • Registratie: Augustus 2016
  • Laatst online: 28-09 01:27
Hi
Ik wil graag de huidige nummer wat nu afgespeeld wordt op de Icecast server wil ik graag ook op me webpagina krijgen maar hoe ?

Enkele info:
Php Versie Php 5.5.
Server IIS 8.0 / Xampp

https://i.gyazo.com/d8234d39af460d7c6be9f245b4080ec8.png

Dit wil ik dus op me Webpagina krijgen maar hoe ?

Bedankt !

Alle reacties


Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Laatst online: 27-09 22:07

MAX3400

XBL: OctagonQontrol

Op GitHub staan meerdere "Now Playing" snippets die, in de een of andere vorm, kunnen weergeven wat er lokaal gespeeld wordt of wat er van een andere publieke server/API-key wordt verstuurd.

Maar wat ik even mis; ben jij ook "de afspeler" of ben je "luisteraar"? Dat heeft nogal wat impact of je bepaalde data van een stream wel/niet mag/kan parsen.

Heb je toevallig al een stukje code waarvan je denkt dat het zou kunnen gaan werken? Loop je tegen bepaalde errors/issues aan?

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • Dreambox1964
  • Registratie: Augustus 2016
  • Laatst online: 28-09 01:27
MAX3400 schreef op vrijdag 24 augustus 2018 @ 19:29:
Op GitHub staan meerdere "Now Playing" snippets die, in de een of andere vorm, kunnen weergeven wat er lokaal gespeeld wordt of wat er van een andere publieke server/API-key wordt verstuurd.

Maar wat ik even mis; ben jij ook "de afspeler" of ben je "luisteraar"? Dat heeft nogal wat impact of je bepaalde data van een stream wel/niet mag/kan parsen.

Heb je toevallig al een stukje code waarvan je denkt dat het zou kunnen gaan werken? Loop je tegen bepaalde errors/issues aan?
Hi welkom,

Ik heb deze gevonden

[Index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<span id="songinfo"></span>
<script>
$(function()
{
getTrackName();
setInterval(getTrackName,16000);
});
function getTrackName()
{
$.ajax(
{
url: "stream.php"
}).done(function(data)
{
$("#songinfo").text( data );
});
}
</script>
</body>
</html>
]

en [stream.php
<?php
$icecast_url='http://35.204.219.113:8000';
$output = file_get_contents($icecast_url);
$search='#<div class="newscontent">.*?Point /(.*?)<.*?href="(.*?)">M3U<.*?Listeners.*?class="streamdata">(.*?)<.*?Song:.*?class="streamdata">(.*?)<.*?</div>#si';
preg_match_all($search, $output, $matches);
$j=count($matches[0]);
for ($i=0;$i<$j; $i++) {
$point_name=$matches[1][$i];
$pount_m3u=$icecast_url.$matches[2][$i];
$point_listners_count=$matches[3][$i];
$point_current_song=$matches[4][$i];
//

echo 'Listeners: '.$point_listners_count.' ';
echo 'Playing: '. $point_current_song.'';
}
?>
]

Alleen krijg een blanco pagina. Geprobeerd met meerdere ( Icecast/shoutcast )Servers

Gr ,

Acties:
  • +2 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Holy crap een hele jQuery library aan meuk om zoiets simpels, jeez.

Kijk ff naar de broncode van mijn shoutcast stream:
https://radiogetswild.com/listen.php?q=h (ja echt, maar 10 regels JavaScript)

Die gebruikt vanwege https wel een interne proxy
code:
1
2
    RewriteRule ^currentsong$ http://127.0.0.1:7777/currentsong?sid=2 [L,P]
    RewriteRule ^(16k-mono|64k|128k).mp3$ http://127.0.0.1:7777/$1.mp3 [L,P]
Deze moet je ook updaten hoor. Zo lek als een mandje icm IIS

edit:
Even de relevante code geplaatst

JavaScript:
1
2
3
4
5
6
7
8
9
10
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            document.getElementById("currentsong").textContent = this.responseText;
        }
    };
    setInterval(function(){
        xhr.open("GET", "/currentsong", true);
        xhr.send();
    }, 10000);

[ Voor 46% gewijzigd door DJMaze op 29-08-2018 16:03 ]

Maak je niet druk, dat doet de compressor maar


Acties:
  • +1 Henk 'm!

  • ElCondor
  • Registratie: Juni 2001
  • Laatst online: 14:00

ElCondor

Geluk is Onmisbaar

Dreambox1964 schreef op vrijdag 24 augustus 2018 @ 19:43:
[...]


Hi welkom,

Ik heb deze gevonden

[Index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
</head>
<body>
<span id="songinfo"></span>
<script>
$(function()
{
getTrackName();
setInterval(getTrackName,16000);
});
function getTrackName()
{
$.ajax(
{
url: "stream.php"
}).done(function(data)
{
$("#songinfo").text( data );
});
}
</script>
</body>
</html>
]

en [stream.php
<?php
$icecast_url='http://35.204.219.113:8000';
$output = file_get_contents($icecast_url);
$search='#<div class="newscontent">.*?Point /(.*?)<.*?href="(.*?)">M3U<.*?Listeners.*?class="streamdata">(.*?)<.*?Song:.*?class="streamdata">(.*?)<.*?</div>#si';
preg_match_all($search, $output, $matches);
$j=count($matches\[0]);
for ($i=0;$i<$j; $i++) {
$point_name=$matches\[1][$i];
$pount_m3u=$icecast_url.$matches\[2][$i];
$point_listners_count=$matches\[3][$i];
$point_current_song=$matches\[4][$i];
//

echo 'Listeners: '.$point_listners_count.' ';
echo 'Playing: '. $point_current_song.'';
}
?>
]

Alleen krijg een blanco pagina. Geprobeerd met meerdere ( Icecast/shoutcast )Servers

Gr ,
En een tip voor de volgende keer: Als je code typt of copy-paste, dan graag in
code:
1
[code][/code]
blocks ;) _/-\o_

Hay 365 dias en un año y 366 occasiones para festejar (Boliviaans spreekwoord)