2010-04-30 19 views

Antwort

46

Fügen Sie ein Semikolon am Ende der HTTP-Anfrage hinzu. Es ist das Protokoll von Shoutcast, um seine Browser-Erkennung zu überschreiben. Wie folgt aus:

<audio controls src="http://shoutcast.internet-radio.org.uk:10272/;"></audio> 
+2

+1 gute Lösung, war mir dessen nicht bewusst! – bobince

3

Ja. Aber seine einzige Arbeit in Safari

<!DOCTYPE html> 
<audio controls src="http://shoutcast.internet-radio.org.uk:10272/"></audio> 

Ursache Opera und Firefox nicht nicht frei Codecs unterstützt hat

+0

Wäre es auch auf Chrome arbeiten? –

18

Es ist ein großes Problem mit Shoutcast, die ich für sie verantwortlich vermuten funktioniert nicht einmal in Chrome, das MP3 unterstützen soll.

Shoutcast können drei verschiedene Arten von Antwort dienen:

  • eine native-Shoutcast „ICY“ Protokoll Audio-Antwort-Streaming. Er entscheidet, dies zu tun, wenn der Player, der auf den Stream zugreift, einen Header icy-metadata: 1 enthält.

  • Eine reine HTTP-Streaming-Audioantwort ohne zusätzliche Metadaten für Mediaplayer ohne ICY-Unterstützung.

  • die "SHOUTcast D.N.A.S. Status "Seite und andere Seiten auf der Weboberfläche.

Wie entscheidet sich, ob eine Webseite anstelle eines Audiostreams geschaltet werden soll? Es wird geschätzt, ob Sie einen Webbrowser verwenden. Indem Sie schauen, ob der Header User-Agent mit Mozilla/... beginnt. Weil alle Webbrowser Mozilla sind, oder? Meine Güte, SHOUTcast.

Also, wenn Chrome versucht, den Audio-Stream zum Abspielen zu holen, denkt SHOUTcast, dass es ein Webbrowser ist (naja ... es ist) und weigert sich, ihm den Audio-Stream zu geben, um das Audio-Tag einzufügen. Stattdessen wird die Admin-Webseite angezeigt.

(Ich würde vermuten, dass Safari die icy-metadata Header übergibt, um das Problem zu vermeiden, mit spezieller Unterstützung für SHOUTcast. Ich kann es im Moment nicht testen, da Safari Audio oder Video nicht wiedergeben wird. Vielleicht will ich installieren QuickTime für das. Vielleicht kann es gehen, gestopft zu werden.)

So müssen Sie wahrscheinlich einen Flash-Audio-Player als Fallback hinzufügen.

+0

Sehr interessant. – jayarjo

+0

Vielen Dank für nicht nur sagen, dass es nicht funktioniert, sondern auch warum erklären! – leemes

4
<audio src="http://85.25.108.20:8090/;" controls autoplay></audio> 

Dies sollte gut funktionieren, aber stellen Sie sicher /; ist es nach der Stream-URL und Port. Wenn Sie keine automatische Wiedergabe benötigen, entfernen Sie die Markierung "autoplay".

+0

Ich habe den Beitrag etwas bearbeitet, bitte versuchen Sie die richtige Grammatik zu verwenden, wenn Sie auf Stack Overflow posten. Ansonsten gute Arbeit! – Nathan2055