我正在开始一个项目,我想在执行应用程序时在主要活动中重现视频,当用户按下视频进入另一个活动时。如果用户按下后退按钮,他将再次进入主屏幕并从头开始再现视频。该视频位于原始目录中。
问题在于视频视图在首次创建活动时再现视频,而不是当用户从其他活动返回时视频(在我的情况下是MenuSection活动)。代码非常简单,但无论如何我都会粘贴它:
public class MainActivity extends Activity {
private VideoView mVideoView;
LinearLayout menuSection;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mVideoView = (VideoView) findViewById(R.id.surface_view);
mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() +"/"+R.raw.documentariesandyou));
mVideoView.requestFocus();
mVideoView.setMediaController(null); //i dont want the controls of the videoview.
mVideoView.start();
menuSection = (LinearLayout) findViewById(R.id.menuSection);
menuSection.setOnClickListener(new menuSectionListener());
}
class menuSectionListener implements OnClickListener {
public void onClick(View v) {
Intent staticActivityIntent = new Intent(MainActivity.this, MenuSection.class);
startActivity(staticActivityIntent);
}
}
}
MenuSection只是一个显示类似“Hello world”的文本视图的活动,所以我没有粘贴它。
答案 0 :(得分:2)
将mVideoView.start();
移至onResume()
而不是onCreate()
作为:
@Override
protected void onResume() {
super.onResume();
mVideoView.start();
}
当活动已经开始运行时,请参阅您的活动调用Managing the Activity Lifecycle onResume()
答案 1 :(得分:1)
在video.pause()
覆盖您的活动方法上致电onPause()
,并在活动的video.resume()
方法上致电onResume()
。
答案 2 :(得分:0)
将mVideoView.start();
移至onStart()
,而不是onCreate()
。
有关活动生命周期如何工作的详细信息,请参阅开发人员文档中的Activity Lifecycle。
我不确定,但您可能还需要将setVideoURI();
移至onStart()
。