2011-03-09 66 views
2

嗨,大家好我有点新的android我开发了一个应用程序,它是从服务器流音频一切都很好,直到我的应用程序崩溃,我调试它,发现了Android媒体玩家在通过HTTPS链接进行流式传输时会抛出异常。从音频流式传输到我的应用程序,我几乎有大约20个链接,大约一半是HTTPS链接,但他们没有播放。如果有人了解它,请回答我需要帮助,如果你可以给我任何一段代码,我会更容易理解。提前感谢从https链接流音频问题

回答

2

Android媒体播放器不支持HTTPS。如果您提供HTTPS URL,那么该文件将被下载。

这个“HTTPS”不支持的事实在android文档中提供。

+2

凡在文档中不支持HTTPS的信息?没有在http://developer.android.com/reference/android/media/MediaPlayer.html上找到它,尽管setDataSource方法描述只是说“设置要使用的数据源(文件路径或http/rtsp URL) “。 – 2011-10-12 14:11:58

+0

我只是在一年后指出文档声称MediaPlayer确实支持HTTPS:http://developer.android.com/guide/appendix/media-formats.html。但是,这似乎仍然不是这样。 – 2013-04-17 20:37:00

0

调用媒体播放器之前,只需添加以下代码

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); 
     trustStore.load(null, null); 
     MySSLSocketFactory sf = new MySSLSocketFactory(trustStore); 
     sf.setHostnameVerifier(MySSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); 
     sf.fixHttpsURLConnection(); 
     HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; 
     HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); 

MySSLSocketFactory:https://github.com/joniks/Android-Async-HTTP/blob/master/library/src/main/java/com/loopj/android/http/MySSLSocketFactory.java