Audio vom Icecast-Server wird nicht in Chrome wiedergegeben

8

Ich habe Probleme, statische Inhalte (mp3-Dateien) zu erhalten, die von einem Icecast-Server zur Wiedergabe im Google Chrome-Browser mit HTML5 bereitgestellt werden. Der Grund, warum wir die mp3s über Icecast bedienen, ist die Richtlinie: Die CPB verlangt, dass sie "gestreamt" und nicht "heruntergeladen" werden, da wir öffentliches Radio sind. Unsere Live-Audio-Streams können problemlos in Chrome wiedergegeben werden.

Wenn Sie die URL für einen von meinem Icecast 2.4.3-Server bedienten MP3 direkt in die URL-Leiste von Google Chrome eingeben, wird sie nicht abgespielt. Machen Sie dasselbe in Firefox, IE, Safari, etc .. es spielt! Probieren Sie es aus:

Ссылка

(Die temporäre Lösung, die ich verwende, ist Flash, aber das neueste Update für Chrome (v60.0) macht Flash standardmäßig blockiert, die Option "Immer für diese Website zulassen" scheint nicht zu funktionieren und das kleine Symbol zu zeigen, dass Flash blockiert ist, ist viel diskreter. Versuchen Sie es hier: Ссылка )

Meine beste Vermutung, warum dies geschieht, ist, dass es etwas damit zu tun hat: Ссылка

Also habe ich versucht, ihr Codebeispiel zu reproduzieren, in dem sie mit HTML5 Media Capture umgehen, um Audio ohne Benutzerinteraktion zu spielen. Aber mit dieser URL für das Audio kann es nicht abgespielt werden und dieser Fehler wird ausgegeben: Uncaught (in promise) DOMException: The element has no supported sources. Probieren Sie es aus : Ссылка Es schlägt nur in Chrome und nicht in Firefox oder anderen fehl.

Ich habe es erneut versucht, aber ohne HTML5 Media Capture. Immer noch keine Würfel. Probieren Sie es aus: Ссылка

Wenn Sie sich die Antwort-Header ansehen, sehen Sie auch "Content-Range: bytes 0-0 / 0" ... könnte das etwas bedeuten?

UPDATE: Ich teste gerade, ob es sich um ein CORS-Problem (Cross-Origin Resource Sharing) handelt. Ich habe die jsfiddle aktualisiert:

%Vor%

Es hat das Endergebnis in Chrome nicht verändert, aber in Firefox wird es jetzt nicht abgespielt und es gibt die Warnung: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://streaming.kansaspublicradio.org:8001/mp3/First_0713886.mp3. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Glauben Sie, der Icecast-Server benötigt den Header 'Access-Control-Allow-Origin' auf 'allow' oder etwas?

Hier ist die vollständige Antwort vom Icecast-Server:

%Vor%

UPDATE 2: Wir haben den CORS-Header Access-Control-Allow-Origin:* zu den Response-Headern des Icecast-Servers hinzugefügt und jetzt funktioniert das jsfiddle in Firefox - no CORS header ‘Access-Control-Allow-Origin’ missing warning. Trotzdem wird Chrome nicht wiedergegeben: (

Ich habe auch WAV-Dateien und M3U-Dateien getestet, und beide werden in Chrome nicht abgespielt. Firefox könnte die wav-Datei (mit dem JSfiddle-Code) aber nicht die m3u-Datei

wiedergeben     
Dan Mantyla 15.08.2017, 15:04
quelle

2 Antworten

2

Ich denke, das Problem ist mit deinem Stream. Hier ist ein leicht abgewandeltes Beispiel mit einer anderen Streaming-URL:

%Vor%

Ссылка

Dies funktioniert auf meinem Computer mit Firefox 55 und Chrome 60.

VLC sagt mir, dass der verwendete Codec MPEG Audio 1/2 (mpga) ist.

In Bezug auf die CORS-Richtlinie könnten Sie an dieser Frage interessiert sein: DOMException: Fehler beim Laden, weil keine unterstützte Quelle gefunden wurde

    
pyb 18.08.2017, 19:16
quelle
3
  

Chrome spielt wahrscheinlich Audiodateien mit Standards BitRate 128, 160,   320, 512, ...

Ich bin nicht 100% auf die Besonderheiten davon, aber es sieht aus wie einige MP3s mit älteren Versionen von Lame, oder länger als ein paar Minuten, oder bei hohen (300 & lt;) oder niedrigen (128 & gt; =) Bitraten scheinen betroffen zu sein. Es scheint Webkit-bezogen zu sein, da es auch Safari-Benutzer betrifft.

JEDOCH!

Als eine Lösung, die MP3-Dateien mit 160 Kbps Bitrate neu zu kodieren, und die neueste Version von LAME (3.99.5) scheint dies behoben zu haben, und sie spielen nun wieder normal über alle gängigen Browser. Linkbeschreibung hier eingeben

    
Farhad Bagherlo 18.08.2017 19:32
quelle