MediaPlayer RTSP видео поток с аутентификацией
Мне удалось потоковое видео с IP-камеры без авторизации, но теперь мне нужно сделать это с авторизацией. Я нашел немного информации о том, что Android не поддерживает аутентификацию с помощью RTSP, но я нашел другую информацию, которая говорит о том, что это возможно на уровне API 14, добавив заголовки с помощью этого метода:setDataSource (Контекстный контекст, Uri uri, Заголовки карты), Мой код выглядит так:
@Override
public void surfaceCreated(SurfaceHolder holder){
String authHeader = getB64Auth("user","password");
Map<String, String> headers = new HashMap<String, String>();
headers.put("Authorization", authHeader);
Uri srcUri = Uri.parse("rtsp://10.0.0.113:554/channel1");
try{
m.setDisplay(h);
m.setDataSource (getApplicationContext(), srcUri,headers);
m.prepare();
m.setAudioStreamType(AudioManager.STREAM_MUSIC);
m.start();
}catch(Exception e){
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
m.release();
}
private String getB64Auth (String login, String pass) {
String source=login+":"+pass;
String ret="Basic "+Base64.encodeToString(source.getBytes(),Base64.URL_SAFE|Base64.NO_WRAP);
Log.e("Authorization",ret);
return ret;
}
Но это не работает, и я не могу найти, где проблема. У кого-нибудь есть опыт с такими трансляциями? Или, может быть, я просто неправильно понял эффект от нового метода класса MediaPlayer?