我想知道如何正确显示从经过身份验证的URL到VideoView的视频。我的代码在Lollipop(5.0)之前运行。现在,在编译为API 21和22之后,将发生错误。我尝试编译回API 19,但是我使用的appcompat库破坏了很多代码。这是我的示例代码:

                Uri videoUri = Uri.parse("https://user:[email protected]/dir1/dir2/dir3/myVideo.mp4");
                vidAtt.setVideoURI(videoUri);


我已经试过了

vidAtt.setVideoURI(videoUri, headers);


但是最小的API是21,而我的是API16。我尝试了生成的URI并将其粘贴到浏览器中,并且可以正常工作。它只是在设备中不起作用。我还尝试传递URI作为一种意图,以便它可以从外部打开视频链接,无论是使用常规视频播放器还是使用第三方视频播放器。它也不起作用。

任何帮助,将不胜感激。提前致谢!

最佳答案

您必须使用setVideoURI-Method,该方法仅在Reflection中可用:

Method setVideoURIMethod = videoview.getClass().getMethod("setVideoURI", Uri.class, Map.class);
setVideoURIMethod.invoke(videoview, Uri.parse(url), /*HashMap<String, String>*/ basicAuthentication;


将BasicAuthentication替换为Basic Authentication Header。

07-27 23:11