3 Eierwekker

Leerdoelen

Na het maken van deze app wordt van je verwacht dat je:

  • een geluidsbestand kunt afspelen in een app
  • weet hoe je een CountDownTimer maakt en gebruikt

Het gebruikte geluidsbestand kun je hier downloaden

Opdracht

Bekijk onderstaand filmpje en maak de app.

Gebruikte methodes/klassen

MediaPlayer

Om geluidsbestanden af te spelen maak je in de map res een nieuwe resource directory genaamd raw. In deze map stop je het geluidsbestand (bijvoorbeeld een mp3) die je wilt afspelen. In je java klasse maak je een object van de klasse MediaPlayer . MediaPlayer heeft hiervoor een speciale static methode create. Je start het geluidsbestand door de methode start op het MediaPlayer object aan te roepen.

//start geluidsbestand airhorn.mp3
MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.airhorn);
mediaPlayer.start();

CountDownTimer

Met de klasse CountDownTimer kun je er voor zorgen dat er iets gebeurt nadat een bepaalde tijd is verstreken. Als je een object van een CountDownTimer maakt geef je aan de constructor twee parameters mee:

  1. De tijd die aftelt in milliseconden. Na afloop wordt de methode onFinish aangeroepen.
  2. De interval in milliseconden tijdens het aftellen waarin iets kan gebeuren. Na iedere interval wordt de methode onTick aangeroepen. De methode heeft een parameter millisUntilFinished die de resterende tijd van de timer geeft.

Om een countdown timer te maken kun je een object maken. Android Studio zal twee verplichte methodes voor je aanmaken.

//maak een timer die 30 seconden aftelt
CountDownTimer timer = new CountDownTimer(30000, 1000) {

    //deze methode wordt iedere seconde uitgevoerd
    //zolang de timer loopt
    @Override
    public void onTick(long millisUntilFinished) {
        int timerTijd = (int) (millisUntilFinished / 1000);
        //zet resterende tijd op een TextView
        timerTextView.setText("" + timerTijd);
    }
    //deze methode wordt uitgevoerd als de tijd is verstreken
    @Override
    public void onFinish() {
        MediaPlayer mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.airhorn);
        mediaPlayer.start();
    }
};
timer.start();