Android:如何防止MediaPlayer播放重叠音频?

Android:如何防止MediaPlayer播放重叠音频?,android,audio,Android,Audio,我正在制作一个恶棍生活音效播放器,我想知道如何阻止MediaPlayer同时播放两首或更多曲目 这是单击按钮时调用的方法: int sequence = 1; public void thugPlay (View view) { // assign a media player to an audio file MediaPlayer nothingButThatGthang = MediaPlayer.create(MainActivity.this,

我正在制作一个恶棍生活音效播放器,我想知道如何阻止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 ;
    }
}
正如您所看到的,在播放当前音频文件之前,它应该停止上一个音频文件,但是,它不会发生


谢谢大家!

创建一个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语句。

考虑使用它花了我一段时间,但我在代码中实现了这一点。托达·格弗