Autenticación para Videoview en android
Estoy utilizando un Videoview para reproducir http video.That URL de vídeo Http necesita autenticación .
Así que por favor, hágamelo saber cómo la autenticación se puede establecer en el VideoView? Si no hay otra alternativa para la visualización de vídeo autenticado.
Gracias y Saludos, Sree Harsha.
Hay un método oculto en VideoView que permite configurar encabezados HTTP. Puede utilizar la reflexión para acceder a ella. Pero sólo ayudará si el servidor admite la autenticación básica
Method setVideoURIMethod = videoView.getClass().getMethod("setVideoURI", Uri.class, Map.class); Map<String, String> params = new HashMap<String, String>(1); final String cred = login + ":" + pwd; final String auth = "Basic " + Base64.encodeBytes(cred.getBytes("UTF-8")); params.put("Authorization", auth); setVideoURIMethod.invoke(videoView, uri, params);
Por supuesto, ya que esta API no documentada no está garantizado para funcionar correctamente, debe manejar las excepciones y tener un plan de fallback.
Primero debes saber qué tipo de autenticación es requerida por este servidor: http://unixpapa.com/auth/index.html
En segundo lugar, dependiendo del tipo de autenticación, debe proporcionar parámetros de autenticación (nombre de usuario / contraseña) dentro de la URL. Por lo general esto será aceptado (pero no necesatily, debe probar): http://username:[email protected]/whatever
Se trata de autenticaciones básicas de tipo http. Los sitios modernos utilizan otras opciones como OpenID y OAuth. Esto es un poco más difícil de implementar.
De todos modos, usted debe saber el tipo de tipo de autenticación, antes de empezar a buscar la solución.
El acceso de API de reflexión a la setViewUri (Uri, Map) funcionó para mí.
Supongo que una alternativa más segura es usar MediaPlayer.setDataSource (Contexto, Uri, Mapa) :
Un riesgo de usar la API de reflexión es que la API podría desaparecer en una versión futura …