2015-10-03 3 views
0

Я создаю плеер звукового эффекта для головорезов, и я хотел знать, как я могу остановить воспроизведение MediaPlayer двумя или более треками одновременно.Android: Как я могу помешать MediaPlayer воспроизводить перекрывающиеся аудио?

Это метод, который вызывается при нажатии кнопки:

int sequence = 1; 
public void thugPlay (View view) { 
      // assign a media player to an audio file 
    MediaPlayer nothingButThatGthang = MediaPlayer.create(MainActivity.this, R.raw.g_thang); 
    MediaPlayer nextEpisode = MediaPlayer.create(MainActivity.this, R.raw.next_episode); 
    MediaPlayer fuckThePolice = MediaPlayer.create(MainActivity.this, R.raw.ftp); 
    MediaPlayer hipnotize = MediaPlayer.create(MainActivity.this, R.raw.hipnotize); 
    MediaPlayer moveBitch = MediaPlayer.create(MainActivity.this, R.raw.move_bitch); 
    MediaPlayer ridin = MediaPlayer.create(MainActivity.this, R.raw.ridin); 
    MediaPlayer still = MediaPlayer.create(MainActivity.this, R.raw.still); 
      // Plays according to sequence's value 
    if (sequence == 1) { 
     still.stop(); 
     nothingButThatGthang.start(); 
     sequence++ ; 
    } 
    else if (sequence == 2) { 
     nothingButThatGthang.stop(); 
     nextEpisode.start(); 
     sequence++ ; 
    } 
    else if (sequence == 3) { 
     nextEpisode.stop(); 
     fuckThePolice.start(); 
     sequence++ ; 
    } 
    else if (sequence == 4) { 
     fuckThePolice.stop(); 
     hipnotize.start(); 
     sequence++ ; 
    } 
    else if (sequence == 5) { 
     hipnotize.stop(); 
     moveBitch.start(); 
     sequence++ ; 
    } 
    else if (sequence == 6) { 
     moveBitch.stop(); 
     ridin.start(); 
     sequence++ ; 
    } 
    else { 
     ridin.stop(); 
     still.start(); 
     sequence = 1 ; 
    } 
} 

Как вы можете видеть, перед игрой текущего звукового файла он должен остановить предыдущий, однако, этого не происходит.

Спасибо!

+1

Рассмотрите возможность использования http://developer.android.com/reference/android/media/SoundPool.html –

ответ

2

Создать одну переменную MediaPlayer в качестве члена класса:

MediaPlayer mp; 

Затем в случае щелчка:

if (mp != null && mp.isPlaying()){ 
    mp.stop(); 
} 

if (sequence == 1) { 
     mp = MediaPlayer.create(MainActivity.this, R.raw.still); 
     mp.start(); 
     sequence++; 
    } 

Вы должны от курса завершить Постулаты If.

+1

Понадобилось некоторое время, но мне удалось реализовать это в коде. Тода Гевер –

Смежные вопросы