将VideoView与基本验证的URL一起使用

时间:2015-07-22 06:52:36

标签: android android-videoview basic-authentication

我想知道如何正确地将视频从经过身份验证的网址显示到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作为意图传递,以便它可以在外部打开视频链接,无论是使用股票视频播放器还是第三部分。它也没有用。

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

2 个答案:

答案 0 :(得分:1)

您必须使用setVideoURI-Method,该方法仅适用于Reflection:

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

将basicAuthentication替换为您的基本身份验证标头。

答案 1 :(得分:0)

你能试试吗

try {
    VideoView.setVideoPath("https://user:12345@sample.com/dir1/dir2/dir3/myVideo.mp4"); 
    } catch (Exception e) {
    e.printStackTrace();
   }
   VideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
    // Close the progress bar and play the video
    public void onPrepared(MediaPlayer mp) {
        //             

        VideoView.start();

    }
   });