簡體   English   中英

當我開始另一個音頻時如何停止媒體播放器?

[英]how to stop media player when I start another audio?

我正在嘗試開發一個應用程序。 此應用程序中有 12 個按鈕。 每個按鈕播放一種不同的音頻。 每三個按鈕都是相同的顏色。 我不想一起玩相同的顏色。 但我想一起玩,顏色不一樣。

現在他們都一起玩。 我怎樣才能停止播放相同的顏色。

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(android.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(android.R.string.no, null)
            .setIcon(android.R.drawable.ic_dialog_alert)
            .show();
}
[you can see picture of design in this link][1]}

首先,您需要檢查顏色是否相同。

true 或 false 布爾值可以工作,但您需要編寫大量代碼。

我會推薦 MediaPlayer 的不同實例,例如 mediaplayer1 和 mediaplayer2。

相同的顏色在 MediaPlayer 的同一個實例上運行。 使用 isPlaying() 檢查當前是否正在播放相同的顏色。 如果為真則什么都不做,如果為假則啟動它。 你會弄清楚的。

如果您的音頻文件始終相同,則 SoundPool 類也可以提供幫助。 SoundPool 需要的代碼比您的示例中的代碼少得多,而且更可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM