我有一个VideoView,其中定义了所有监听器,我正在尝试跟踪在播放期间网络连接终止时该怎么做。
目前视频已冻结,并且未调用OnErrorListener。恢复的唯一方法是按后退按钮。
有什么想法吗?
答案 0 :(得分:1)
解决方法可能是将视频文件下载到SD卡上(例如:使用URLConnection和InputStream)。我确信您可以在下载过程中检测到网络连接错误。下载完成后,VideoView可以直接从您的本地SD卡播放视频文件。唯一的问题是VideoView必须等待整个视频下载才能播放。
答案 1 :(得分:0)
我通过设置一个检查连接的计时器来解决这个问题。
公共类CheckNetworkConnection扩展了AsyncTask {
private boolean networkIsAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
@Override
protected String doInBackground(String... params) {
while (vv.isPlaying()) {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {
e.printStackTrace();
return "";
}
if ( !networkIsAvailable()) {
vv.stopPlayback();
VideoTime.this.finish();
}
}
return "";
}
}