Android视频播放器只允许在HTTPS链接下播放视频,为了使HTTP链接的视频也能够播放,需要进行一些设置。
首先需要在AndroidManifest.xml文件中加入以下权限:
然后,在代码中需要使用自定义实现的VideoView或者使用MediaController来播放HTTP链接的视频,示例代码如下:
String VIDEO_URL = "http://example.com/video.mp4";
VideoView videoView = (VideoView) findViewById(R.id.video_view);
//使用MediaController
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.setMediaController(mediaController);
videoView.setVideoURI(Uri.parse(VIDEO_URL));
videoView.requestFocus();
videoView.start();
//自定义实现VideoView
public class HttpVideoView extends VideoView {
public HttpVideoView(Context context) {
super(context);
}
public HttpVideoView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public HttpVideoView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public void setVideoURI(Uri uri) {
String uriString = uri.toString();
if (uriString.startsWith("https") || uriString.startsWith("file")) {
// HTTPS链接或者本地文件,使用默认实现
super.setVideoURI(uri);
} else {
// HTTP链接,使用自定义实现
super.setVideoURI(Uri.parse("http://example.com/your_proxy_url?url=" + uriString));
}
}
}
其中,自定义实现的VideoView需要使用代理服务器来将HTTP链接转换成HTTPS链接,这里只提供了示例代码,实际使用中需要根据自己的需求进行修改。
最后,在应用的build.gradle文件中,需要将minSdkVersion设置为21或者以上,以支持TLS 1.2协议,示例代码如下:
android {
defaultConfig