将 VideoView 与基本的经过身份验证的 URL 一起使用
Using VideoView with basic authenticated URLs
我想知道如何正确显示从经过身份验证的 URL 到 VideoView 的视频。我的代码在 Lollipop (5.0) 之前运行。现在,在编译到 APIs 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 作为意图传递,以便它可以从外部打开视频 link,无论是使用股票视频播放器还是第三方播放器。也没用。
如有任何帮助,我们将不胜感激。提前致谢!
你能试试这个吗
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();
}
});
您必须使用 setVideoURI-Method,它仅适用于反射:
Method setVideoURIMethod = videoview.getClass().getMethod("setVideoURI", Uri.class, Map.class);
setVideoURIMethod.invoke(videoview, Uri.parse(url), /*HashMap<String, String>*/ basicAuthentication;
将 basicAuthentication 替换为您的基本身份验证 Header。
我想知道如何正确显示从经过身份验证的 URL 到 VideoView 的视频。我的代码在 Lollipop (5.0) 之前运行。现在,在编译到 APIs 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 作为意图传递,以便它可以从外部打开视频 link,无论是使用股票视频播放器还是第三方播放器。也没用。
如有任何帮助,我们将不胜感激。提前致谢!
你能试试这个吗
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();
}
});
您必须使用 setVideoURI-Method,它仅适用于反射:
Method setVideoURIMethod = videoview.getClass().getMethod("setVideoURI", Uri.class, Map.class);
setVideoURIMethod.invoke(videoview, Uri.parse(url), /*HashMap<String, String>*/ basicAuthentication;
将 basicAuthentication 替换为您的基本身份验证 Header。