2017-10-10 6 views
0

Je suis perplexe sur ce point et j'ai fait référence à tant d'autres messages. Je ne demande à personne de compléter mon code, mais simplement de montrer où je me trompe et de me diriger dans la bonne direction. Je veux lire un fichier audio lorsque je clique sur un bouton d'image mais le faire s'arrêter quand un autre bouton d'image est cliqué. Le problème que j'ai est que si j'appuie sur tous les boutons d'image ils joueront tous l'audio en même temps. Mise à jour: maintenant le problème est le pinkaudiotest est toujours le premier fichier audio à jouer, peu importe quel bouton d'image je clique. Je dois cliquer une deuxième fois pour entendre le bon fichier audio.android jouer un son à la fois

Répondre

0

Vous créez une nouvelle instance de MediaPlayer à chaque clic. Utilisez simplement un seul.

if (media.isPlaying()) { 
        media.stop(); 
        media.release(); 
        media= MediaPlayer.create(context, R.raw.purpleaudiotest); 
       } media.start(); 
+0

vôtre semble faire l'affaire, mais il a causé la pinkaudiotest à jouer d'abord, peu importe ce bouton image que je presse d'abord. Je dois appuyer deux fois sur le violet pour l'amener à dire violet parce que la première fois qu'il dit rose, cela se produit également avec n'importe quelle couleur en dehors de rose. –

+0

@DavidRodriguez, je n'ai pas utilisé MediaPlayer depuis un moment, mais si je me souviens correctement, cela prend du temps pour se préparer et commencer à jouer (bien que ce soit un problème différent). Si ce sont des sons courts, je suggère d'utiliser le SoundPool pour cela. – Raz

0

Essayez celui-ci,

MediaPlayer mediaPlayer = new MediaPlayer(); 
    try { 
    mediaPlayer.setDataSource(R.raw.name); 
    mediaPlayer.prepare(); 
    } catch (IOException e) { 
      e.printStackTrace(); 
    } 
    mediaPlayer.start();