2011-08-05 46 views
0

我有一個VideoView與所有聽衆定義,我試圖追查在播放過程中網絡連接中斷,該怎麼辦。如何檢測Android VideoView播放中的中斷?

目前的視頻只是凍結,並OnErrorListener不叫。唯一的恢復方法是按下後退按鈕。

任何想法?

回答

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 ""; 
} 

}

1

一種解決方法可能是下載的視頻文件到SD卡(例如:用的URLConnection和InputStream的)。我知道你可以在下載過程中檢測到網絡連接錯誤。然後當下載完成時,VideoView可以直接從本地SD卡播放視頻文件。唯一的問題是VideoView在播放前必須等待整個視頻下載。