我有一個VideoView與所有聽衆定義,我試圖追查在播放過程中網絡連接中斷,該怎麼辦。如何檢測Android VideoView播放中的中斷?
目前的視頻只是凍結,並OnErrorListener不叫。唯一的恢復方法是按下後退按鈕。
任何想法?
我有一個VideoView與所有聽衆定義,我試圖追查在播放過程中網絡連接中斷,該怎麼辦。如何檢測Android VideoView播放中的中斷?
目前的視頻只是凍結,並OnErrorListener不叫。唯一的恢復方法是按下後退按鈕。
任何想法?
我通過設置一個定時器,檢查連接性解決了這個。
公共類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 "";
}
}
一種解決方法可能是下載的視頻文件到SD卡(例如:用的URLConnection和InputStream的)。我知道你可以在下載過程中檢測到網絡連接錯誤。然後當下載完成時,VideoView可以直接從本地SD卡播放視頻文件。唯一的問題是VideoView在播放前必須等待整個視頻下載。