Java 多个按钮的声音重叠

Java 多个按钮的声音重叠,java,android,Java,Android,使用MediaPlayer.isplay()和MediaPlayer.stop()方法 package com.example.tobiadegoroye.pokemonsoundboard; import android.media.MediaPlayer; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.wi

使用
MediaPlayer.isplay()
MediaPlayer.stop()
方法

package com.example.tobiadegoroye.pokemonsoundboard;

import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class PokemonSoundboard extends AppCompatActivity {


    MediaPlayer psyduckplayer; //member variable
    MediaPlayer pikachuplayer; //member variable
    MediaPlayer diglettplayer; //member variable



    ImageButton mpsyduckbutton;
    ImageButton mpikachubutton;
    ImageButton mdiglettbutton;

    View.OnClickListener psyducklistner = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            psyduckplayer.start();

        }
    };

    View.OnClickListener pikachulistner = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            pikachuplayer.start();

        }
    };

    View.OnClickListener digletlistner = new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            diglettplayer.start();
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pokemon_soundboard);


        mpsyduckbutton = (ImageButton) findViewById(R.id.psyduckbutton);
        mpikachubutton = (ImageButton) findViewById(R.id.pikachubutton);
        mdiglettbutton = (ImageButton) findViewById(R.id.diglettbutton);

        psyduckplayer = MediaPlayer.create(this,R.raw.psyduck);
        pikachuplayer = MediaPlayer.create(this,R.raw.pikachu);
        diglettplayer = MediaPlayer.create(this,R.raw.diglett);

        mpsyduckbutton.setOnClickListener(psyducklistner);
        mpikachubutton.setOnClickListener(pikachulistner);
        mdiglettbutton.setOnClickListener(digletlistner);

    }
}

stopPlaying()
方法停止所有媒体播放,前提是它们正在播放而不是
null
(它们可能不是
null
,因为它们是成员变量,但这仍然是一个很好的做法)。

@Tobi Adegoroye欢迎您。在这里,通常的做法是对你认为有帮助的答案进行投票,甚至给他们打上分数。没有义务这么做,但它确实有助于用户在队伍中成长和提升。欢迎来到社区!
public void stopPlaying()
{
    if(pikachuplayer != null && pikachuplayer.isPlaying())
    {
            pikachuplayer.stop();
    }
    if(digletplayer != null && digletplayer.isPlaying())
    {
            digletplayer.stop();
    }
    if(psyduckplayer != null && psyduckplayer.isPlaying())
    {
            psyduckplayer.stop();
    }
}

View.OnClickListener psyducklistner = new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        stopPlaying();
        psyduckplayer.start();

    }
};

View.OnClickListener pikachulistner = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        stopPlaying();
        pikachuplayer.start();

    }
};

View.OnClickListener digletlistner = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        stopPlaying();
        diglettplayer.start();
    }
};

View.OnClickListener digletlistner = new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        diglettplayer.start();
    }
};