如何在返回后重放视频以及如何在背景中循环播放视频



第一个问题我正在使用java制作一个猜安卓游戏,我想知道我如何使用视频作为主屏幕的背景,而不是有一个图像或简单的颜色?我从另一个问题中得到了这个问题的答案,但我现在有了一个新问题视频在后台很好地播放,但每当我打开另一个活动并回到主屏幕(视频正在播放的地方)时,屏幕显示黑屏。当安卓进入睡眠模式时,我启动手机,又出现了同样的问题!

第二个问题如何在背景中循环播放视频,我的视频大约有一分钟长,所以一分钟后视频就暂停了。那么,如何循环呢?

我的代码在下面-

public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
setTitle("");
videoBackground();
}
public void videoBackground(){
VideoView simpleVideoView = (VideoView) findViewById(R.id.videoView);
simpleVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bg_video));
simpleVideoView.start();
}
public void exitGame(View v){
finish();
System.exit(0);
}
public void newGame(View v){
Intent new_game = new Intent(this,ModesActivity.class);
startActivity(new_game);
}
public void howToPlay(View v){
}

现在我知道这里的问题是什么,但我不知道解决办法。问题是有人在堆栈溢出中回答了这个问题,我在这里复制答案-

NatureDevil的回答和视频是伟大的,但有两件事是缺失的,首先,如果你点击一个按钮,打开一个新的活动,如唱歌,并决定点击设备上的后退箭头,主屏幕会黑屏,因为视频不会重新启动,所以你需要添加这个

@Override
protected void onResume() {
super.onResume();
// to restart the video after coming from other activity like Sing up
mVideoView.start();
}

所以,我不明白把这个特定的方法放在哪里。我一点也不懂。由于声誉不高,我无法在那里发表评论。你们能帮我一下吗?

谢谢你的聆听。

你可以试试这个

public class HomeActivity extends AppCompatActivity {
VideoView simpleVideoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
videoBackground();
}
public void videoBackground(){
simpleVideoView = (VideoView) findViewById(R.id.videoView);
simpleVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.bg_video));
simpleVideoView.start();
simpleVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setLooping(true); 
}
});
}
@Override
protected void onResume() {
super.onResume();
simpleVideoView.start();
}
@Override
protected void onPause() {
super.onPause();
simpleVideoView.stopPlayback();
}
}

最新更新