Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中视频视图的认证_Android - Fatal编程技术网

android中视频视图的认证

android中视频视图的认证,android,Android,我正在使用视频视图播放http视频。该http视频url需要身份验证 因此,请让我知道如何将身份验证设置为VideoView?如果没有,是否还有其他方法可用于查看经过身份验证的视频 谢谢和问候, Sree Harsha。首先,您应该知道此服务器需要何种身份验证: 其次,根据身份验证类型,您应该在URL中提供身份验证参数(用户名/密码)。通常这是可以接受的(但不是必须的,您应该测试):http://username:password@www.yourhostname.com/whatever 这是

我正在使用视频视图播放http视频。该http视频url需要身份验证

因此,请让我知道如何将身份验证设置为VideoView?如果没有,是否还有其他方法可用于查看经过身份验证的视频

谢谢和问候,
Sree Harsha。

首先,您应该知道此服务器需要何种身份验证:

其次,根据身份验证类型,您应该在URL中提供身份验证参数(用户名/密码)。通常这是可以接受的(但不是必须的,您应该测试):
http://username:password@www.yourhostname.com/whatever

这是基本的http风格的身份验证。现代网站使用其他选项,如OpenID和OAuth。这有点难以实现


无论如何,在开始寻找解决方案之前,您应该知道身份验证的类型。

在VideoView中有一个隐藏的方法,允许设置HTTP头。您可以使用反射来访问它。但只有当服务器支持基本身份验证时,它才有帮助

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);
Method setVideoURIMethod=videoView.getClass().getMethod(“setVideoURI”,Uri.class,Map.class);
Map params=新的HashMap(1);
最后一个字符串cred=login+“:”+pwd;
最终字符串auth=“Basic”+Base64.encodeBytes(cred.getBytes(“UTF-8”);
参数put(“授权”,auth);
调用(videoView、uri、参数);

当然,由于这是未记录的API,因此不能保证正常工作,您应该处理异常并制定回退计划。

反射API对setViewUri(Uri,Map)的访问对我来说很有效

我想更安全的选择是使用:


使用反射API的一个风险是,该API可能会在未来的版本中消失…

我尝试了您建议的方式,但它不起作用,我的iphone团队也采用了相同的建议。我在Galaxy 3中进行了测试。我还在浏览器中检查了类似“”的链接,这也是在宣传有关凭据的消息。这是一个设备错误吗?请提供任何建议。这个网站使用什么样的身份验证?你是指Apache的“.htaccess”文件吗?这只是一个存储Apache配置的文件:是的,它是Apache HTacess文件。因此,我们可以从我们这边做些什么吗?VideoView进行身份验证的唯一方法是使用包含嵌入式用户名/密码的URL,如下所示:
http://username:password@www.yourhostname.com/whatever
。因此,您需要设置Apache以接受这种身份验证。我不是Apache方面的专家,因此无法帮助您解决此问题。setvideoURI现在在api 22中是公开的:)