单击其他时停止音频

时间:2017-05-21 08:45:33

标签: java android audio

public class MainActivity extends AppCompatActivity {

    //Media Player Loops

    //Loops
    MediaPlayer dk1;
    MediaPlayer dk2;   

    //Mediaplayer Location
    dk1 = MediaPlayer.create(this, R.raw.dholak01);
    dk2 = MediaPlayer.create(this, R.raw.dholak03);
}



//Looping and start Media Player

public void playdk1 (View view) {
    if (dk1.isPlaying() == true) {
        dk1.stop();
        return;
    }

    if (dk2.isPlaying() == true) {
        dk2.stop();
    } else {
        dk1.start();
        dk1.setLooping(true);
    }
}

public void playdk2 (View view) {
    if (dk2.isPlaying() == true) {
        dk2.stop();
        return;
    }

    if (dk1.isPlaying() == true) {
        dk1.stop();
    } else {
        dk2.start();
        dk2.setLooping(true);
    }
}

我的UI中有两个按钮......这两个按钮分别有两个音频,我把它称为dk1和dk2。我想要

1.按dk2时停止dk1

2.一直重复该程序

3.我想创建另外6个音频,如上面的dk1和dk2

问题:    我不能再玩那么多次了

请帮助我....

3 个答案:

答案 0 :(得分:3)

我猜您的代码中存在一些错误,因为这两种方法是相同的。我假设它们是两种不同的方法:playdk1playdk2播放不同的音频。

版本1:单击该按钮时,音频将停止并播放另一个音频。

public void playdk1 (View view) {
    if (dk1.isPlaying() == true) {
        dk1.stop();
        dk1.reset();

        return;
    }

    if (dk2.isPlaying() == true) {
        dk2.stop();
        dk2.reset();
    }

    dk1.start();
    dk1.setLooping(true);
}

public void playdk2 (View view) {
    if (dk2.isPlaying() == true) {
        dk2.stop();
        dk2.reset();

        return;
    }

    if (dk1.isPlaying() == true) {
        dk1.stop();
        dk1.reset();
    }

    dk2.start();
    dk2.setLooping(true);
}

版本2:单击该按钮时,音频将停止。第二次单击该按钮时,将播放另一个音频。

public void playdk1 (View view) {
    if (dk1.isPlaying() == true) {
        dk1.stop();
        dk1.reset();            

        return;
    }

    if (dk2.isPlaying() == true) {
        dk2.stop();
        dk2.reset();
    } else {
        dk1.start();
        dk1.setLooping(true);
    }
}

public void playdk2 (View view) {
    if (dk2.isPlaying() == true) {
        dk2.stop();
        dk2.reset();

        return;
    }

    if (dk1.isPlaying() == true) {
        dk1.stop();
        dk1.reset();
    } else {
        dk2.start();
        dk2.setLooping(true);
    }
}

答案 1 :(得分:1)

使用stop()方法

  public void playdk2 (View view) {
    if (dk2.isPlaying() == true) {
        dk2.stop();
    } else {
        dk2.start();
        dk2.setLooping(true);
    }

答案 2 :(得分:0)

public void clickFirst(View view)
{
   if(firstMedia.isPlaying())
   {
   firstMedia.stop();
   secondMedia.start();
   secondMedia.setLooping(true);
   }
   else
   {
     firstMedia.start();
     firstMedia.setLooping(true);
     secondMedia.stop();
   }

}

public void clickSecond(View view)
{
   if(secondMedia.isPlaying())
   {
   secondMedia.stop();
   firstMedia.start();
   firstMedia.setLooping(true);
   }

   else
   {
     secondMedia.start();
     secondMedia.setLooping(true);
     firstMedia.stop();
   }
}