如何阻止Media Player在彼此之上播放多个声音

Sli*_* C. 2 audio android media-player

如何阻止MediaPlayer相互播放?我希望应用程序中的媒体播放器只播放1个声音.现在,当我播放1个声音,然后播放另一个声音时,它们同时播放.我希望当我播放第二个声音时,第一个停止,所以它们不会在彼此之上播放.我的代码:

 mp=MediaPlayer.create(this, R.raw.barets);
    ImageButton dugme1 = (ImageButton) findViewById(R.id.dugme1);
    dugme1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp.isPlaying()){
                mp.pause();
                mp.seekTo(0);
            }
            else{
                mp.start();
            }
            }

    });

    mp2=MediaPlayer.create(this, R.raw.dragunov);
    ImageButton dugme2 = (ImageButton) findViewById(R.id.dugme2);
    dugme2.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp2.isPlaying()){
                mp2.pause();
                mp2.seekTo(0);
            }
            else{
                mp2.start();
            }
            }

    });

    mp3=MediaPlayer.create(this, R.raw.g3s);
    ImageButton dugme3= (ImageButton) findViewById(R.id.dugme3);
    dugme3.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp3.isPlaying()){
                mp3.pause();
                mp3.seekTo(0);
            }
            else{
                mp3.start();
            }
            }

    });
    mp4=MediaPlayer.create(this, R.raw.psg1);
    ImageButton dugme4= (ImageButton) findViewById(R.id.dugme4);
    dugme4.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp4.isPlaying()){
                mp4.pause();
                mp4.seekTo(0);
            }
            else{
                mp4.start();
            }
            }

    });

    mp5=MediaPlayer.create(this, R.raw.scout);
    ImageButton dugme5= (ImageButton) findViewById(R.id.dugme5);
    dugme5.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            if (mp5.isPlaying()){
                mp5.pause();
                mp5.seekTo(0);
            }
            else{
                mp5.start();
            }
            }

    });
}
Run Code Online (Sandbox Code Playgroud)

}

Sou*_*der 5

您只是检查当前的媒体播放器是否正在播放,也就是说,在mp中,您只是在检查mp,等等.

开始播放其中一个之前,您需要停止/暂停所有其他MediaPlayers .在启动其中任何一个之前,检查其他四个是否正在运行.如果是,则停止/暂停它们,并对所有播放的媒体播放器执行此操作,启动当前的媒体播放器.