Musique et son sous Android

 

Il est possible de jouer une musique ou un son depuis une application. Cela se fera facilement à partir de deux classes qui ont l'avantage de jouer tout cela en arrière plan.

 

Positionner le bouton "volume" sur flux audio musique/son

Mais avant de parler de ces deux classes, parlons du volume sonore.

Vous avez certainement déjà constaté que lorsque vous appuyez sur le bouton du volume audio, celui-ci proposait de changer un volume qui peut différer d'une application à une autre:

- Une pour la sonnerie

- Une autre pour la vidéo

- Une autre pour la voix

- ...

En fait, il existe un flux audio suivant le type de son que vous voulez émettre. Il vous faudra donc indiquer à Android le type de son que vous allez traiter. Le flux audio se nommera ici "music stream".

Pour en informer Android, vous passerez par la classe Context de la manière suivante:

context.setVolumeControlStream(AudioManager.STREAM_MUSIC);

L'appel se fera dans la méthode Activity.onCreate(), car il ne sera plus nécessaire de le repréciser ensuite.

 

Jouer un effet sonore ou une musique depuis son application

- Effet sonore

  • La classe SoundPool
  • Charger un son
  • Patienter le temps du chargement...
  • Jouer le son
  • Contrôles de tous les flux
  • Clôture
  • Exemple de code

- Musique

  • Le principe
  • Instanciation de la classe MediaPlayer
  • Préciser le fichier à utiliser
  • Préparer la musique
  • Listener OnPreparedListener
  • Jouer la musique
  • Listener pour indiquer la fin de la musique
  • Listener pour indiquer la fin d'un déplacement
  • Options supplémentaires
  • Terminer avec le media player

Cycle de vie

Ne pas oublier qu'une activité a un cycle de vie. Il y aura donc certainements des choses à faire dans les méthodes onPause, onStop et onResume concernant les effets sonores ou les musiques !

 

Lancer le lecteur multimédia de l'appareil

Enfin, la dernière façon de lire de la musique (mais à mon sens moins intéressante...) sera d'utiliser une intention implicite pour un type MIME positionné à audio/mp3:

Le principe:lecture d'un fichier mp3 se trouvant à la racine de la carte SD.

Utilisez l'explorateur de DDMS pour transférer votre fichier MP3 vers la carte SD de votre émulateur d'appareil Android. Il suffit de glisser un fichier MP3 vers le répertoire /mnt/sdcard.

(Il faut qu'un émulateur soit lancé (sinon pas d'explorateur), et que l'appareil émulé ait une carte SD ! Pour accéder à DDMS: Soit vous avez déjà présent un bouton DDMS, soit, vous pouvez y accéder en passant par le menu "Window", option "Open perspective/Other..." et choisir DDMS. Si l'explorateur n'est pas présent: Menu Window/Show View/File Explorer).

 

Autre solution pour jouer un son

Il est possible de notifier quelque chose à un utilisateur en utilisant un son. Dans ce cas, vous utiliserez la solution suivante.