Shoutcast Webradio im WebFront

Hallo zusammen,

mit dem folgenden Script habt Ihr die Möglichkeit mit Hilfe der Shoutcast
Datenbank einzelne Sender über das Webfront anzuzeigen und abzuspielen.
Die Sender sind nach Genre sortiert. Weiter besteht die Möglichkeit die Top 500
von Shoutcast aufzurufen. Neu hinzugekommen in der V3.0 ist die Möglichkeit
Sender als Favoriten abzuspeichern. Das ganze wurde mit IPS V2.5 getestet.

Installation:

  1. Kopiert das „shoutcast.png“ nach IP-Symcon\webfront\user\icons\fixed und das
    „Plus.png“ und „Minus.png“ nach IP-Symcon\webfront\user\icons
  2. Entpackt die „radioV3.2.zip“ nach IP-Symcon\webfront\user
    ( In Eurem user Ordner muss danach ein Verzeichniss mit dem Namen „radio“ existieren. )
  3. Erstellt in IP-Symcon unter Eurer MediaPlayer Instanz ein neues Script mit dem Namen „Shoutcast Webradio“ und fügt folgenden Inhalt ein:

Bitte tragt im Script noch die ID Eures Webfront-Konfigurators ein, welchen Ihr zur Anzeige nutzt.


<?php

// Bitte tragen Sie die ID des Webfront Konfigurators ein, über welchen Sie Ihr Webfront aufrufen
$webfrontid = 11879 /*[WebFront Configurator]*/;

// ************* Ab hier nichts mehr ändern. ****************
// Player ID ermitteln
$object = IPS_GetObject($IPS_SELF);
$playerid = ($object['ParentID']);
// Script verstecken
IPS_SetHidden($IPS_SELF, true);
// Variable anlegen und verstecken, in welcher die Favoriten gespeichert werden
$idfav = CreateVariableByName($playerid, "Shoutcast Favoriten", 3);
IPS_SetHidden($idfav, true);
// Variable anlegen und verstecken, in welcher der Counter abgelegt wird
$idcounter = CreateVariableByName($idfav, "Counter", 1);
IPS_SetHidden($idcounter, true);
// Variable anlegen und Icon zuweisen, welche im Webfront als Box angezeigt wird
$idbox = CreateVariableByName($playerid, "Shoutcast Webradio", 3, "~HTMLBox");
IPS_SetIcon($idbox, "shoutcast");
// Box füllen
SetValue($idbox , "<iframe src=\"user/radio/radio.php?playerid=".$playerid."&webfrontid=".$webfrontid."&idfav=".$idfav."&idcounter=".$idcounter."\" border=\"0\" frameborder=\"0\" style=\"top: 0pt; bottom: 0pt; left: 0pt; right: 0pt; width: 100%; height: 400px;\"/></iframe>");
// Fertig Meldung anzeigen
echo "Fertig...";

// ************** Funktionsscripte **************************

function CreateVariableByName ($id, $name, $type, $profile = "")
{
	global $IPS_SELF;
	$vid = @IPS_GetVariableIDByName($name, $id);
	if ($vid === false)
	{
		$vid = IPS_CreateVariable($type);
		IPS_SetParent($vid, $id);
		IPS_SetName($vid, $name);
		IPS_SetInfo($vid, "this variable was created by script #$IPS_SELF");
		if ($profile !== "") { IPS_SetVariableCustomProfile($vid, $profile); }
	}
	return $vid;
}
?>

  1. Führt nun das Script aus. Das Script legt alle benötigten Variablen an.

Habt Ihr mehrer Media Player Instanzen führt für jede Punkt 3 und 4 aus.

Bedienung:

Im Webfront seht Ihr jetzt eine neue HTMLBox mit dem Shoutcast Interface.
Zum Start wird die Top500 geladen. Über den Button „Genre Asuwahl“ könnt Ihr Euch eine Liste
der verfügbaren Genre anzeigen lassen. Nachdem Ihr ein Genre ausgewählt habt, werden die
Sender passend zu diesem Genre geladen. Über den Playbutton könnt Ihr den Sender abspielen.
Mit dem Plusbutton könnt Ihr den Sender zu Euren Favoriten hinzufügen.
Über den Button Favoriten könnt Ihr Euch Eure Favoritenliste anzeigen. Hier könnt Ihr ebenfalls
über den Playbutton den Sender abspielen. Über den Minusbutton könnt Ihr den Sender aus der
Favoritenliste löschen.

So nun wünsche ich Euch viel Spaß beim Musik hören :wink:

Änderung:

2010-11-29 - V1.1 - Touchoptimierte Version erstellt. Es erscheinen keine Scrollbalken mehr im Browser. Das scrollen der Liste wird über die zwei Button im Menü realisiert.
2011-01-29 - V2.0 - Da Shoutcast auf die API 2.0 gewechselt ist, habe ich dies ebenfalls angepasst.
2011-06-23 - V3.0 - Komplette Überarbeitung, Favoritenliste, Ladeanimation, Bestätigungen, Touchoptimiert.
2011-07-13 - V3.1 - Kleinere Anpassungen, getestet unter FF5 und IPad2, kleine Fehlerbehandlung da die Shoutcast API im Moment sehr buggy ist.
2012-01-22 - V3.2 - devid angepasst, Anpassungen am Design

Eine Anmerkung zum Schluss. Mein Script basiert zum Teil auf dem XBMC-Script von Horst.

shoutcast.png

Plus.png

Minus.png

03.png

radioV3.0.zip (18 KB)

radioV3.1.zip (18 KB)

radioV3.2.zip (29 KB)

Hi,

vielen Dank für dein Script.
Hab ich eben ausprobiert. Funktioniert super… nur leider nicht mit dem IE. Da ist das IFrame wieder so klein wie auch bei der Routenplanung über IPS. Aber im FireFox sieht es super aus.

Viele Grüße
Chris

Da ich nur den FireFox im Einsatz habe, hatte ich es garnicht mit dem IE getestet.
Ich schau heute abend mal was ich machen kann. Leider gehen meine CSS Kenntnisse gegen null, vielleicht kann mir ein CSS Profi einen Tip geben.

Gruss
Michael

Hab Shoutcast auch zum laufen bekommen…echt klasse :smiley:

Ist es denn Möglich den aktuell laufenden Titel in eine Variable zu aktualisieren und anzeigen zu lassen?

In der Soutbox-Auswahl wird dieser ja angezeigt…nur wie lässt sich das auslesen? :confused:

läuft super. :slight_smile: Danke.

echo "<iframe src=\"user/radio/radio.php?playerid=".$playerid."\" border=\"0\" frameborder=\"0\" style=\"top: 0pt; bottom: 0pt; left: 0pt; right: 0pt; width: 100%; height: 100%;\"/></iframe>";

damit sollte es auch im IE klappen. Ich vergesse auch gerne mal was zu schliessen. Der Iframe war noch offen.

Ich hab mir das ganze in eine HTML-Box gemacht.

na DAS wäre doch ein schönes lernbeispiel für unsere nächste Teamviewer Session :slight_smile:

LG
Sascha

das kannst Du auch ohne mich, Du musst nur aufpassen, wenn der Mediaplayer unter einer Kategorie liegt funktioniert das mit obigen Script nicht da er dann die ID der Kategorie hat und nicht des Players. Entweder Script entsprechend anpassen oder einfach die PlayerId eintragen.

Beispiel:

$playerid = 12345; // InstanzId des Mediaplayer

Hallo Rainer

Kannst Du bitte mal das Script in Bezug auf die HTML Box posten.

Irgendwie zeigt er mir nichts an wegen dem user/radio/radio.php?playerid=".$playerid

Hallo Andy,

das ist nur die Variable mit Profil ~HTML-Box setzen, mehr nicht.

SetValue(59385 /*[Multimedia\Shoutcast Radio\Shoutcast\Auswahl]*/, "<iframe src=\"user/radio/radio.php?playerid=".$playerid."\" border=\"0\" frameborder=\"0\" style=\"top:0pt; bottom:0pt; left:0pt; right:0pt; width:100%; height:400px;\"/></iframe>");

Hi Rainer

Yep jetzt funzt es. Danke.

juhuuuu :slight_smile: IPS ist nicht mehr „still“ :slight_smile:

Danke Rainer !

nur das scrollen auf dem I-Pad in der liste der Sender geht leider nicht…gibts da ne Lösung ?

LG
Sascha

Keine Ahnung, auf dem Galaxy-Tab, geht es.

Wie sieht es mit 2 Fingern aus (wischen) ?

Gruß
Dieter

moin moin
als Anfänger verstehe ich nicht welcher Variable ich dem Profil ~HTML-Box zuweisen soll. Unter dem Media Player sind doch nur Variablen die nichts mit dem Webradio zu tun haben?
Ich kenne nur die Funktion Variable doppel klicken weiter weiter und dann das Profil einstellen. Ich dachte, das ich einem Script kein Profil zuweisen kann. Sonst hat alles sofort auf Anhieb funktioniert.
Über ein kleines Stichwort würde ich mich freuen
mfg
Armin

Hallo Armin,

Du musst dir eine Stringvariable anlegen, dieser das Profil HTMLBox zuweisen und die ID der Variable im Script in dem von dir geposteten String eintragen.

so versuche ich es schon den ganzen Tag. StringVariable erstellen mit dem Namen „Auswahl“. Und dem Profil HTML Box zugewiesen. Dann neues Script mit dem Inhalt
<?SetValue(49687 /[Multimedia\Shoutcast\Shoutcast \Auswahl]/, „<iframe src=„user/radio/radio.php?playerid=“.49687.“" border=„0“ frameborder=„0“ style=„top:0pt; bottom:0pt; left:0pt; right:0pt; width:100%; height:400px;“/></iframe>");
?>

2 Sachen sind mir nicht ganz klar. Welche ID muß ich eingeben und ist die Syntax für die ID so richtig? playerid=".49687."" border=„0“
Kommt das Script auf die Ebene von den Variablen oder unter der VAriable Auswahl?
Ich bekomme leider nie was angezeigt im Feld Anzeige.
Danke für die Hilfe!!
mfg
Armin

SetValue(12345, … 12345 ist deine VariablenID der Stringvariable mit dem Profil HTMLBox.

Die PlayerID weist Du so zu.
ganz oben im Script.
$playerid = 34567;

nicht mehr und nicht weniger.

$playerid = 19661 /*[Multimedia\Shoutcast Radio\Shoutcast]*/;
SetValue(59385 /*[Multimedia\Shoutcast Radio\Shoutcast\Auswahl]*/, "<iframe src=\"user/radio/radio.php?playerid=".$playerid."\" border=\"0\" frameborder=\"0\" style=\"top:0pt; bottom:0pt; left:0pt; right:0pt; width:100%; height:400px;\"/></iframe>");

Hallo Rainer,
danke jetzt hat es endlich funktioniert ;). Der Fehler war, das die Variable schreibgeschützt war und der Haken dafür ausgegraut war. Hab die VAriable gelöscht neu angelegt dann ging es. Woran kann das gelegen haben?

LG
und 1000 mal Danke!!
Armin

deine eigene angelegte Variable.?

ja War die Variable Auswahl