2011-03-09 91 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