我想知道如何将经过身份验证的 URL 中的视频正确显示到 VideoView。我的代码在 Lollipop (5.0) 之前运行。现在,在编译为 API 21 和 22 后,错误发生了。我曾尝试编译回 API 19,但我使用的 appcompat 库破坏了很多代码。这是我的示例代码:
Uri videoUri = Uri.parse("https://user:12345@sample.com/dir1/dir2/dir3/myVideo.mp4");
vidAtt.setVideoURI(videoUri);
我已经试过了
vidAtt.setVideoURI(videoUri, headers);
但最小 API 是 21,而我的是 API 16。我尝试了生成的 URI 并粘贴到浏览器中,它工作正常。它只是在设备中不起作用。我还尝试将 URI 作为 Intent 传递,以便它可以从外部打开视频链接,无论是使用股票视频播放器还是第三方播放器。它也没有用。
如有任何帮助,我们将不胜感激。提前致谢!
最佳答案
您必须使用仅适用于反射的 setVideoURI-Method:
Method setVideoURIMethod = videoview.getClass().getMethod("setVideoURI", Uri.class, Map.class);
setVideoURIMethod.invoke(videoview, Uri.parse(url), /*HashMap<String, String>*/ basicAuthentication;
将 basicAuthentication 替换为您的基本身份验证 header 。
关于android - 将 VideoView 与基本的经过身份验证的 URL 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31555875/