![](/img/trans.png)
[英]I have a problem with Media Player when playing the audio, it does not stop even when I exit the application How do I release this code?
[英]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.