I try to show a series of audios in a list, with their corresponding buttons play, pause and stop each one .. That I have done, not in the best way possible but I do not mind doing it by hand ..
The fact is that when I play an audio, when playing another one, the two come together ... and what I would like is that the audio being played will execute stop () to reproduce the one that has been pressed.
I leave you my Activity: (It's an example with two audios only)
public class Audios extends AppCompatActivity {
private MediaPlayer soundChiste;
private Button btnMoroPlay;
private Button btnMoroPause;
private Button btnMoroStop;
private Button btnAcademiaPlay;
private Button btnAcademiaPause;
private Button btnAcademiaStop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audios);
// El moro y el mercedes
btnMoroPlay = (Button) findViewById(R.id.buttonMoroPlay);
btnMoroPause = (Button) findViewById(R.id.buttonMoroPause);
btnMoroStop = (Button) findViewById(R.id.buttonMoroStop);
// La academia de la guarcia civil
btnAcademiaPlay = (Button) findViewById(R.id.buttonAcademiaPlay);
btnAcademiaPause = (Button) findViewById(R.id.buttonAcademiaPause);
btnAcademiaStop = (Button) findViewById(R.id.buttonAcademiaStop);
// EL moro y el mercedes
btnMoroPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundChiste = MediaPlayer.create(getApplicationContext(), R.raw.moroymercedes);
soundChiste.start();
btnMoroPause.setEnabled(true);
btnMoroStop.setEnabled(true);
}
});
btnMoroPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundChiste.pause();
btnMoroPlay.setEnabled(true);
btnMoroPause.setEnabled(false);
}
});
btnMoroStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
btnMoroStop.setEnabled(false);
btnMoroPause.setEnabled(false);
if(soundChiste != null) {
soundChiste.stop();
soundChiste.release();
soundChiste = null;
}
}
});
// Academia de la guardia civil
btnAcademiaPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundChiste = MediaPlayer.create(getApplicationContext(), R.raw.academiaguarciacivil);
soundChiste.start();
btnAcademiaPause.setEnabled(true);
btnAcademiaStop.setEnabled(true);
}
});
btnAcademiaPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
soundChiste.pause();
btnAcademiaPlay.setEnabled(true);
btnAcademiaPause.setEnabled(false);
}
});
btnAcademiaStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(soundChiste.isPlaying()) {
soundChiste.stop();
soundChiste.release();
}
btnAcademiaStop.setEnabled(false);
btnAcademiaPause.setEnabled(false);
}
});
}
}
Maybe a single "player" would be even better and more efficient for all the audios, although I'm starting with Android and Java and I do not have a lot of fluency to get that