Question

Nous vous proposons d'enrichir la deuxième application graphique avec la possibilité d'écouter un petit extrait de votre musicien favori qui s'affichera sur l'écran juste en cliquant sur l'image.

Solution

Il faudra pour cela créer autant de fichiers sonores qu'il y a d'image, installer tous ces fichiers sons dans le répertoire « raw » sous le répertoire Ressources et utiliser la classe « soundPool » comme le petit code suivant vous l'illustre pour un seul fichier son.

1
package app.com.myapplication
2
import android.media.AudioManager
3
import android.media.SoundPool
4
import android.os.Bundle
5
import android.view.View
6
import android.widget.Toast
7
import androidx.appcompat.app.AppCompatActivity
8
9
class MainActivity : AppCompatActivity() {
10
   private var soundPool: SoundPool? = null
11
   private val soundId = 1
12
   override fun onCreate(savedInstanceState: Bundle?) {
13
      super.onCreate(savedInstanceState)
14
      setContentView(R.layout.activity_main)
15
      soundPool = SoundPool(6, AudioManager.STREAM_MUSIC, 0)
16
      soundPool!!.load(baseContext, R.raw.i_am_rider, 1)
17
   }
18
   fun playSound(view: View) {
19
      soundPool?.play(soundId, 1F, 1F, 0, 0, 1F)
20
      Toast.makeText(this, "Playing sound. . . .", Toast.LENGTH_SHORT).show()
21
      }
22
}

Dans le cas de plusieurs fichiers son, comme nous le découvrirons pour notre deuxième animation, il faudra créer une liste de ces soundPool et jouer le fichier correspondant à la bonne image en le référant par sa position dans la liste.