我無法找到一種方式來使用需要基本身份驗證時使用mp.setDataSource(url);我可以在Android MediaPlayer上使用基本HTTP身份驗證嗎?
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(url);
mp.prepareAsync();
任何人有任何想法?
我無法找到一種方式來使用需要基本身份驗證時使用mp.setDataSource(url);我可以在Android MediaPlayer上使用基本HTTP身份驗證嗎?
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(url);
mp.prepareAsync();
任何人有任何想法?
我不認爲本地媒體播放器支持這一點。
您是否曾嘗試在URL中輸入用戶名和密碼?
http://<user>:<password>@<host>:<port>/<url-path>
是的,但它沒有奏效。謝謝 – 2009-08-13 12:58:39
你可以下載高速緩存上的MP3和發揮它,這裏是對 http://almondmendoza.com/2010/03/11/play-mediaplayer-with-authentication-on-android/
後,您可以通過HTTP頭,包括基本身份驗證頭,在MediaPlayer的使用下面的方法,它可請求在Android API級別14及以上。
這爲我工作:
public void setupMediaPlayer(){
// Setup Media Player and Prepare to Play
media = new MediaPlayer();
media.setAudioStreamType(AudioManager.STREAM_MUSIC);
// Authdata
String username = "username";
String password = "password";
// encrypt Authdata
byte[] toEncrypt = (username + ":" + password).getBytes();
String encoded = Base64.encodeToString(toEncrypt, Base64.DEFAULT);
// create header
Map<String, String> headers = new HashMap<>();
headers.put("Authorization","Basic "+encoded);
Uri uri = Uri.parse("http://your.full.url:port");
try {
media.setDataSource(this,uri,headers);
} catch (IOException e) {
Log.e(TAG,"Exception "+e.getMessage());
}
media.prepareAsync();
media.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
}
你有什麼解決辦法嗎?我面臨同樣的問題。 – 2013-04-28 05:18:01