首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SHOUTcast无线流媒体不适用于Kitkat

SHOUTcast无线流媒体不适用于Kitkat
EN

Stack Overflow用户
提问于 2014-07-21 05:03:53
回答 1查看 597关注 0票数 0

https://play.google.com/store/apps/details?id=com.sirius.fm.radio这里是我的应用程序url。

在这段时间里,我正在播放来自“呼喊”的音频,它一直运行良好,直到android发布kitkat更新。最近,当我在android kitkat上运行应用程序时,它没有播放kitkat操作系统版本的广播。

这是我正在使用的流url

http://s8.voscast.com:7112

这是我在kitkat版本上获得的错误日志

代码语言:javascript
复制
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425): Unable to initialize the MediaPlayer for fileUrl=http://s8.voscast.com:7112
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425): java.net.ProtocolException: Unexpected status line: ICY 200 OK
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.RawHeaders.setStatusLine(RawHeaders.java:108)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.RawHeaders.fromBytes(RawHeaders.java:308)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.HttpTransport.readResponseHeaders(HttpTransport.java:135)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.HttpEngine.readResponse(HttpEngine.java:644)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:347)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.sirius.fm.radio.StreamingMediaPlayer.downloadAudioIncrement(StreamingMediaPlayer.java:117)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.sirius.fm.radio.StreamingMediaPlayer$startRadio.doInBackground(StreamingMediaPlayer.java:88)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at com.sirius.fm.radio.StreamingMediaPlayer$startRadio.doInBackground(StreamingMediaPlayer.java:1)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
07-17 06:15:22.911: E/com.sirius.fm.radio.StreamingMediaPlayer$startRadio(1425):    at java.lang.Thread.run(Thread.java:841)
07-17 06:15:22.941: E/on post exte(1425): post exte

在所有其他版本的安卓系统中,如Micromax Canvas 4 A210Samsung Galaxy s3等它没有kitkat版本--很好用。

虽然在Lg OptimusNexus 5Nexus 4等kitkat设备中,它不能工作,但它显示了上述错误

如有任何帮助/指导热线,将不胜感激。

不管怎样,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-21 07:06:08

我终于找到了解决办法

我用新方法替换下面的方法

代码语言:javascript
复制
URLConnection cn = new URL(mediaUrl).openConnection();
        cn.setRequestProperty("Icy-metadata", "1");
        cn.connect();
        InputStream stream = cn.getInputStream();
        if (stream == null) {
            Log.e(getClass().getName(),"Unable to create InputStream for mediaUrl:" + mediaUrl);
        }

用下面描述的一种新方法替换上述方法

代码语言:javascript
复制
final int CONNECT_TIMEOUT_MILLIS = 60 * 1000; // 30s
              final int READ_TIMEOUT_MILLIS = 85 * 1000; // 45s

         OkHttpClient client = new com.squareup.okhttp.OkHttpClient();
            client.setConnectTimeout(CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
            client.setReadTimeout(READ_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS);
           OkUrlFactory okUrlFact= new OkUrlFactory(client);

        HttpURLConnection con=   okUrlFact.open(new URL(mediaUrl) );
        con.setRequestProperty("Icy-metadata", "1");
        con.connect();

希望它能对某人有所帮助

谢谢

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24858028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档