Shoutcast Transcoder: Zwei DJ-Namen

Status
Für weitere Antworten geschlossen.
Also das Script selber, die Titelanzeige funktioniert auch bei komisch angeschriebenen Titeln.
Wenn aber das Script von dir drin ist und ein solcher Track gespielt wird, dann bekomm ich einen
PHP Fehler, irgendwass von falsche xml encode.

Mit freundlichen Grüssen
 
Das kann eigentlich nur passieren, wenn der SC Trans selber läuft, also die automatische Playliste aktiv ist und du in den Dateinamen Sonderzeichen genutzt hast.
In dem Fall kann es einen XML Fehler geben, weil die vom SC Trans generierte xml-Datei dann eventuell nichtmehr xml konform ist und die simplexml Klasse diese dann nicht verarbeiten kann.

- MAD
 
Kann man das nicht irgendwie ausschliessen? Also dass bei Titeln mit sonderzeichen, keine Verarbeitung der simplexml
Klasse abläuft?

Mit freundlichen Grüssen
 
Versuchs mal damit:
PHP:
function sct_get_djname()
{
    // IP oder Hostname des SC-Trans Servers
    $sc_host = 'stream.host.de';
 
    // API Port des SC-Trans
    $sc_port = '7999';
 
    // API User (Default: admin)
    $sc_user = 'admin';
 
    // API Adminpass (Default: goaway)
    $sc_pass = 'goaway';
 
    mt_srand((double)microtime()*1000000);
    $seq = mt_rand(1,100);
    $post = 'op=getstatus&seq=' . $seq;
 
    libxml_use_internal_error(true);
    $ch = curl_init($sc_host . '/api');
    curl_setopt($ch, CURLOPT_PORT, $sc_port);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, $sc_user . ':' . $sc_pass);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    $curl = curl_exec($ch);
    $xml = new SimpleXMLElement($curl);
    curl_close($ch);
 
    if (!$xml)
    {
        libxml_clear_errors();
        return 'Nicht verfuegbar';
    }
 
    if ($xml->data->status->activesource['source'] == 'dj')
    {
        return (string)$xml->data->status->activesource->name;
    }
    else
    {
        return 'Jukebox';
    }
}

neu ist die Zeile libxml_use_internal_error(true); vor $ch = curl_init($sc_host . '/api');
und dieser Teil:
if (!$xml)
{
libxml_clear_errors();
return 'Nicht verfuegbar';
}
nach curl_close($ch);
Das Nicht verfügbar wird dann im Fehlerfall als DJ-Name ausgegeben.

 
Hi endy66,

lese grade erst diesen Thread. Unser Shoutcast Interface macht genau das was du suchst.
Interpret - Titel werden normal ausgegeben.
Wird Mikefader "geöffnet" wird aktuelle Sendung ausgegeben. Voraussetzung ist dass der Mikefaderswitch mit dem PC verbunden wird.
Sonderzeichen werden durch Alternative Zeichen/Worte ersetzt (wegen den bekannten Problemen bei Shoutcast und RDS-Dekodern)
Ausgabe per FTP auf Webserver und zum RDS-Coder ist auch mit dabei.

Software kannste bei uns von der Webseite abgreifen. Doc ist included.

Gruss:
-Serge-
 
Habs nun geschafft! Der Code von dir mit den Variablen stimmte nicht ganz, hab das geändert und nun funktioniert alles, wie es soll
Bedanke mich herzlich bei dir, warst eine super Hilfe:)!
Und nun geh ich schlafen^^.

Mit freundlichen Grüssen

Wie wäre es mit dem Code.
Leider bekomme ich das nicht so hin mit MAD sein Code.
Danke
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben