android - 将 VideoView 与基本的经过身份验证的 URL 一起使用

标签 android android-videoview basic-authentication

我想知道如何将经过身份验证的 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/

相关文章:

android - Cocos2D android背景图片搞砸了

java - Spring boot HTTP Basic 传递到 JDBC

iis-7 - IIS7 中没有可用的基本身份验证选项

android - VideoView 尺寸不适合屏幕

android - 使用VideoView从内部存储android播放视频文件

android - 如何以编程方式在 VLC android 上添加媒体 Controller

java - 如何在 Selenium WebDriver 中对 FirefoxDriver、ChromeDriver 和 IEdriver 执行基本身份验证?

android - 调整 fragment 大小

java - Java中的逆变类型参数?

android - 如何在不影响其弹出菜单的情况下向微调器添加边框