有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在启动另一个音频时停止媒体播放器?

我正在尝试开发一个应用程序。此应用程序中有12个按钮。每个buton播放一个不同的音频。每三个按钮的颜色相同。我不想一起玩同样的颜色。但是我想和不同颜色的人一起玩

现在他们都在一起玩。我怎样才能停止播放相同的颜色

public class Sayfa2 extends AppCompatActivity {
private MediaPlayer sesb1;
private ImageButton b1;
private ImageButton b2;
private ImageButton b3;
private ImageButton b4;
private ImageButton b5;
private ImageButton b6;
private ImageButton b7;
private ImageButton b8;
private ImageButton b9;
private ImageButton b10;
private ImageButton b11;
private ImageButton b12;

private AdView madview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//UYUMA ENGELLEME KODU
    setContentView(R.layout.activity_sayfa2);

    MobileAds.initialize(this, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
        }
    });

    MobileAds.initialize(this, "ca-app-pub-3206398076180977~5758879718");
    AdView adView = new AdView(this);
    adView.setAdSize(AdSize.BANNER);
    adView.setAdUnitId("ca-app-pub-3206398076180977/5571177453");

    madview = findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    madview.loadAd(adRequest);

    sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.a1);



    b1 = (ImageButton) findViewById(R.id.b1);
    b1.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

               if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }


                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.a11);
                sesb1.start();
                //sesbilgisi();

            }
            return true;
        }
    });

    b2 = (ImageButton) findViewById(R.id.b2);
    b2.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /*if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.a21);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b3 = (ImageButton) findViewById(R.id.b3);
    b3.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

               /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.a31);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b4 = (ImageButton) findViewById(R.id.b4);
    b4.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

               /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.a41);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b5 = (ImageButton) findViewById(R.id.b5);
    b5.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

               /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.b11);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b6 = (ImageButton) findViewById(R.id.b6);
    b6.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.b21);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b7 = (ImageButton) findViewById(R.id.b7);
    b7.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.b31);
                sesb1.start();
                //sesbilgisi();
            }
            return true;
        }
    });

    b8 = (ImageButton) findViewById(R.id.b8);
    b8.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.b41);
                sesb1.start();
            }
            return true;
        }
    });

    b9 = (ImageButton) findViewById(R.id.b9);
    b9.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

             /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.fx1);
                sesb1.start();
            }
            return true;
        }
    });

    b10 = (ImageButton) findViewById(R.id.b10);
    b10.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.hihat1);
                sesb1.start();
            }
            return true;
        }
    });

    b11 = (ImageButton) findViewById(R.id.b11);
    b11.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

               /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.kick1);
                sesb1.start();
            }
            return true;
        }
    });

    b12 = (ImageButton) findViewById(R.id.b12);
    b12.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {

                /* if (sesb1 != null) {
                    sesb1.stop();
                    sesb1.release();
                }*/
                sesb1 = MediaPlayer.create(Sayfa2.this, R.raw.snare1);
                sesb1.start();
            }
            return true;
        }
    });

    ///////////// SES CALMALAR BURADA OLACAK //////////////////

}

public void sesbilgisi(){

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
            alertDialogBuilder
            .setTitle("Delete entry")
            .setMessage(""+sesb1.getAudioSessionId())

            // Specifying a listener allows you to take an action before dismissing the dialog.
            // The dialog is automatically dismissed when a dialog button is clicked.
            .setPositiveButton(安卓.R.string.yes, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    // Continue with delete operation
                }
            })

            // A null listener allows the button to dismiss the dialog and take no further action.
            .setNegativeButton(安卓.R.string.no, null)
            .setIcon(安卓.R.drawable.ic_dialog_alert)
            .show();
}
[you can see picture of design in this link][1]}

共 (1) 个答案

  1. # 1 楼答案

    首先,您需要检查颜色是否相同

    True或false boolean可以工作,但需要编写大量代码

    我会推荐MediaPlayer的不同实例,比如mediaplayer1和mediaplayer2

    相同的颜色在MediaPlayer的同一实例上运行。使用isplay()检查当前是否播放相同的颜色。如果为真,则什么也不做;如果为假,则启动它。你会明白的

    如果您的奥迪文件始终相同,SoundPool类也会有所帮助。SoundPool需要的代码比示例中的代码少得多,而且更可靠