2016-05-17 64 views
0

我在活動中有一個視頻視圖。VideoView在任何對話框中停止打開

private void videoInit() { 
    videoView = (VideoView)findViewById(R.id.videoView); 

    videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      videoView.start(); 
      mp.setLooping(true); 

     } 
    }); 

    videoView.setVideoPath("android.resource://com.aplos.ideliver2/raw/iphone_inner_animation");//src/main/res/raw 
    videoView.requestFocus(); 
    videoView.start(); 
} 

這是我的功能,並打開對話框的目的是其他類。

這是針對場景執行的。

private void processError(Response mResponse) { 
    try { 
     AlertDialog.strMessage = mResponse.getResponseMessage(); 
     AlertDialog.strTitle = "Alert"; 
     AlertDialog.strButtonTitle = "OK"; 
     startActivity(new Intent(context, AlertDialog.class)); 
     overridePendingTransition(R.anim.fade_in, R.anim.fade_out); 
    } catch (Exception e) { 
     H.Handle(e); 
    } 
} 

當對話框打開時,視頻停止。我想讓視頻持續運行。

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
    videoView.stopPlayback(); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    videoView.stopPlayback(); 

} 

@Override 
protected void onResume() { 
    super.onResume(); 
    videoView.start(); 
} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
    videoView.start(); 
} 
+0

如果你想要在後臺工作的任何東西,那麼你需要使用服務而不是活動。 –

回答

1

刪除這兩個

@Override 
protected void onPause() { 
    super.onPause(); 
    videoView.stopPlayback(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    videoView.start(); 
} 

並添加

@Override 
protected void onStop() { 
    super.onPause(); 
    videoView.stopPlayback(); 
} 

@Override 
protected void onRestart() { 
    super.onResume(); 
    videoView.start(); 
} 

因爲當你的窗口,甚至部分遮擋的onPause將被調用,就像一個彈出出現。

編輯:既然你問我解釋爲什麼它的作品,你需要了解活動的生命週期。當活動對用戶完全不可見時,OnStart()將被調用,但當活動甚至部分不可見時,將會調用onPause,例如活動中顯示的警報框,或者當您拉下來查看通知等時。

要了解更多關於活動的生命週期檢查this out

+0

在onPause之後,活動恢復,因此onResume被調用,即使視頻劑量開始。爲什麼? –

+0

完美,它的工作。非常感謝。但是請向我解釋循環的事情。 –

+0

我已經添加了一個編輯,並且請確實接受答案 –

0

使用

onStop() instead of onPause() 

onRestart() instead of onResume() 

祝你好運...!