2011-09-26 106 views
3

我有一個帶有VideoView的活動 - 從網絡加載視頻。但是,當用戶在視頻完全加載之前單擊後退按鈕時,屏幕會變黑,並在返回前一個活動之前經過幾秒鐘。有沒有辦法強制VideoView更快地退出?Android - 使用VideoView延遲關閉活動

這裏是設置流的代碼。視頻的URL以意圖傳遞:

public class VideoPlayer extends Activity { 
    ... 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    ... 

    VideoView videoView = (VideoView) findViewById(R.id.video_view); 
    MediaController mediaController = new MediaController(this); 
    mediaController.setAnchorView(videoView); 
    videoView.setMediaController(mediaController); 
    videoView.setOnPreparedListener(videoPreparedListener); 
    videoView.setOnErrorListener(videoErrorListener); 
    Uri video = Uri.parse(<myvideourl>); 
    videoView.setVideoURI(video); 

    } 
    … 

} 

回答

3

實際上您需要在活動結束前停止視頻。否則,如果您旋轉設備並且在清單文件中選擇了在設備旋轉時重新創建活動,則最終可能會得到IllegalStateException。試試這個:

@Override 
protected void onPause() 
{ 
    super.onPause(); 
    mVideoView.stopPlayback(); 
} 
+0

我也同意這個 –

+2

感謝這一點,但它仍然不能阻止長時間延遲返回到上一個活動。還有什麼我可能會失蹤?我似乎無法像在MediaPlayer上一樣調用release()方法 - VideoView上是否存在等價物?我也嘗試將mVideoView.suspend()添加到onPause(),這也沒有幫助。我想知道是否連接到流沒有釋放和瓶頸應用程序... – bkurzius

+0

我決定最終使用本地的videoplayer,而不是... – bkurzius