android 如何回放一个视频后回去,以及如何循环视频在后台

waxmsbnn  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(133)

第一个问题我正在使用Java制作一个猜测Android游戏,我想知道如何使用视频作为主屏幕的背景,而不是使用图像或简单的颜色?我从这里的另一个问题中得到了这个问题的答案,但我现在有这个新问题-视频在背景中播放得很好,但是每当我打开另一个活动,回到主屏幕(视频正在播放的地方),屏幕显示黑屏。还有,当Android进入睡眠模式时,我启动手机,同样的问题再次出现!
第二个问题如何在后台循环播放视频,我的视频大约有一分钟长,所以一分钟后视频就暂停了。那么,如何循环播放呢?

我的代码在下面--

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();
    }

现在我知道这里的问题是什么,但我不知道解决方案。事实上有人在堆栈溢出中回答了这个问题,我在这里复制答案-
NatureDevil的答案和视频是伟大的,但2件事是失踪的第一,如果你点击一个按钮,并打开一个新的活动,如唱歌,并决定点击设备上的返回箭头,主屏幕将给予黑屏,因为视频不会重新启动,所以你需要添加这个

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

所以,我不明白这个具体的方法放在哪里,我一点都不懂,因为名气太低,我不能在那里加评论,你们能帮我一下吗?
谢谢你的聆听。

tkclm6bt

tkclm6bt1#

你可以试试这个

public class HomeActivity extends AppCompatActivity {
    VideoView simpleVideoView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        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();
    }
}

相关问题