2013-12-18 21 views
1

我想在onErrorListener中啓動一個意圖。默認情況下,如果視頻無法啓動,MediaPlayer將停止,並顯示一個彈出窗口「無法播放視頻」並返回到主要活動。我想要做的是,在理想的情況下,在MediaPlayer.ErrorListener中,顯示我自己的彈出窗口,放置一個positiveButton,以及點擊positiveButton時自己啓動一個新的意圖,將我帶回主要活動。啓動意圖在errorListener

原因是,它會更容易處理連接錯誤或沒有。事實上,我嘗試連接RTSP流,如果我可以檢測到用戶無法訪問ipcam的原因,則無需使用RTSP客戶端來處理連接狀態等。

無論如何,這似乎不可能,因爲您不能在返回某個方法的方法中啓動另一個意圖。和onError的需要布爾返回的方法,所以我甚至無法推出新的意圖正確(and neither display a popup

videoView.setOnErrorListener(new OnErrorListener() { 
    @Override 
    public boolean onError(MediaPlayer mp, int what, int extra) { 

     Intent intent = new Intent(PlayVideo.this, IPCamInformationsActivity.class); 
     intent.putExtra("error", "true"); 
     startActivity(intent); 

     return true; 
    } 
}); 
+0

沒有什麼是應該阻止你調用'startActivity ()'在這種情況下。你的問題必須在其他地方。 –

+0

那真奇怪。無論如何,我正在做另一個項目。這一個需要代碼改進 –

回答

0

你的代碼更改爲:

@Override 
    public boolean onError(MediaPlayer mp, int what, int extra) { 
     try{ 
     return true; 
     } 
     finally{ 
     Intent intent = new Intent(PlayVideo.this, IPCamInformationsActivity.class); 
     intent.putExtra("error", "true"); 
     startActivity(intent); 
     } 
    } 
+0

大聲笑這是一個很好的伎倆。我剛剛嘗試過,但不起作用。無論如何,我不知道這是這個代碼的錯誤,似乎我在進入這裏之前有一個錯誤。我要編輯我的帖子來設置錯誤,顯然當mediaplayer崩潰它不會進入errorListener。在線videoView.setOnErrorListener上有一個nullPointerException(new OnErrorListener() –

+0

事實上,這個錯誤與MediaPlayer有關,我用一個自定義URL啓動Activity,因爲它沒有找到它的應用程序退出。當我與其他活動一起啓動它時,它會關閉MediaPlayer活動以重新開始第一個活動,所以我得到鏈接中給出的錯誤。 –