2017-05-24 8 views
0

Ich habe ein Problem in Bezug auf MediaInfo.Builder von Google Cast. Ich habe folgenden Code verwendet:Chromecast MediaInfo.Builder kann Shoutcast nicht wiedergeben

MediaInfo mediaInfo = new MediaInfo.Builder("http://shoutcast2.index.uz.zgora.pl:8000") 
       .setStreamType(MediaInfo.STREAM_TYPE_LIVE) 
       .setContentType("audio/mpeg") 
       .build(); 

Aber Cast Player funktioniert überhaupt nicht. Der Grund ist, dass diese URL zu SHOUTCAST führt. Anscheinend besteht das Problem im Inhaltstyp. Könnte jemand mitteilen, welcher contentType für Shoutcast-Streams verwendet werden soll, oder zumindest eine Lösung dafür bieten?

Vielen Dank.

Antwort

1

Verwenden Sie anstelle von http://shoutcast2.index.uz.zgora.pl:8000/http://shoutcast2.index.uz.zgora.pl:8000/;. Beachten Sie das Semikolon am Ende.

SHOUTcast-Server suchen Mozilla im Anforderungskopf User-Agent, um einen Browser vs. einen Media-Player zu erkennen. Wenn der Server denkt, dass der Client ein Browser ist, sendet er die Admin-Seite und nicht den Stream. Durch die Übergabe von ; in den Anfrage-URI verwendet der SHOUTcast-Server die User-Agent-Zeichenfolge MPEG OVERRIDE und sendet die tatsächlichen Stream-Daten.

Sie sollten auch wissen, dass SHOUTcast nicht wirklich HTTP-kompatibel ist. Es ist nah genug, dass es wahrscheinlich funktioniert, aber möglicherweise in der Zukunft aufhören zu arbeiten. Icecast ist eine von mehreren besseren Alternativen.

+0

Ich habe dies versucht und die Lösung funktioniert nicht. Vielleicht muss noch etwas anderes gesetzt werden. Hast du eine Idee? – Tom11

+0

@ Tom11 Könnte alles sein, aber ohne zu wissen, was Sie mit "nicht arbeiten" meinen, ist es nicht möglich, Ihnen eine nützliche Antwort zu geben. – Brad

0

Brads Lösung arbeitete für mich. Nach dem Port wurde ein Schrägstrich und ein Semikolon hinzugefügt. Ich änderte auch den Inhaltstyp von audio/mpeg zu audio/mp3. Mein Arbeitscode sieht so aus.

MediaInfo mediaInfo = new MediaInfo.Builder("http://shoutcast2.index.uz.zgora.pl:8000/;") 
       .setStreamType(MediaInfo.STREAM_TYPE_LIVE) 
       .setContentType("audio/mp3") 
       .build(); 
+0

Ihr Inhaltstyp ist falsch. 'audio/mpeg' ist, was es sein soll. 'audio/mp3' ist nicht gültig. – Brad

Verwandte Themen