我在活动中有视频观看次数。
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
答案 1 :(得分:0)
使用
onStop() instead of onPause()
和
onRestart() instead of onResume()
祝你好运......!