I am new to coding and right now I made a background video from youtube that starts immediately after entering the activity and is loopping (it never stops). The btStart has a chronometer set on it, but this has nothing to do with what I am asking. How can I make the video start only after pressing the btStart Button? I placed videoView.start() in clickListener but nothing changed.
The code:
public class BreatheActivity extends AppCompatActivity {
private VideoView videoView;
MediaPlayer mediaPlayer;
int currentVideoPosition;
Button btStart;
ImageButton btOut;
ImageView xOut;
Chronometer chrono;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_breathe);
xOut = findViewById(R.id.btOutX);
btOut = findViewById(R.id.btOut);
btStart = findViewById(R.id.btBreathe);
chrono = findViewById(R.id.breathe_chrono);
videoView = findViewById(R.id.video_breath);
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.breathe);
videoView.setVideoURI(uri);
btStart.setOnClickListener(view -> {
videoView.start();
btStart.setVisibility(View.GONE);
chrono.setBase(SystemClock.elapsedRealtime());
chrono.start();
});
btOut.setOnClickListener(v -> {
BreatheActivity.super.onBackPressed();
});
videoView.setOnPreparedListener(mp -> {
mediaPlayer = mp;
mediaPlayer.setLooping(true);
if (currentVideoPosition != 0) {
mediaPlayer.seekTo(currentVideoPosition);
mediaPlayer.start();
}
});
}
@Override
protected void onPause() {
super.onPause();
currentVideoPosition = mediaPlayer.getCurrentPosition();
videoView.pause();
}
@Override
protected void onResume() {
super.onResume();
videoView.start();
}
@Override
protected void onDestroy() {
super.onDestroy();
mediaPlayer.release();
mediaPlayer = null;
}
}