При нажатии кнопки я написал код для воспроизведения простого звука. Мне бы хотелось, чтобы этот звук воспроизводился даже поверх ранее созданного звука с помощью той же кнопки (например, если пользователь нажимает кнопку несколько раз и быстро.
В настоящий момент код не воспроизводит звук до тех пор, пока ранее созданный звук не будет полностью завершен.
Я попытался выполнить player.pause (), а затем player.seekTo (0) при нажатии кнопки, но затем ранее созданный звук обрезается. Это не то, что я хочу. Я бы хотел, чтобы все звуки заканчивались полностью. Если первый звук все еще воспроизводится, я хочу, чтобы звук 2 (второе быстрое нажатие кнопки) воспроизводился сверху (то же самое для звука 3, 4, (пользователь может, вероятно, щелкнуть 5-6 раз до того, как первый звук закончится). Должен ли я сделать 6 Объекты mediaPlayer и onclick проверяют, воспроизводится ли 1st, воспроизводится ли 2, воспроизводится ли 2, воспроизводится ли 3 и т. д. ... Должен быть более эффективный способ.
Этот код не воспроизводит звук до тех пор, пока предыдущий звук не будет полностью завершен:
button = findViewById(R.id.button);
player1 = MediaPlayer.create(this, R.raw.kick1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player1.start();
return;
}
});
Этот код отключает ранее созданный звук:
button = findViewById(R.id.button);
player1 = MediaPlayer.create(this, R.raw.kick1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
player1.pause();
player1.seekTo(0);
player1.start();
return;
}
});
Как я могу воспроизводить звук при каждом щелчке и перекрывать ранее созданный звук? (если пользователь нажимает кнопку достаточно быстро там, где это необходимо)?