'Android Studio Button doesn't play onClick sound after being pressed too often

I have a few buttons that play sounds through the mediaplayer everytime you tap them.

If you tap them too often though, they go silent. All of them, no matter what button you hit and it doesn't matter how much time you leave between taps.

Afterwards I have to completely kill the app in order to get sound again.


import androidx.appcompat.app.AppCompatActivity;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button bt_kick, bt_closed_hat, bt_clap, bt_snare, bt_subdrop, bt_open_hat, bt_shaker_high, bt_shaker_low;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt_kick = (Button) findViewById(R.id.kick);
        bt_closed_hat = (Button) findViewById(R.id.closed_hat);
        bt_clap = (Button) findViewById(R.id.clap);
        bt_snare = (Button) findViewById(R.id.snare);
        bt_subdrop = (Button) findViewById(R.id.subdrop);
        bt_open_hat = (Button) findViewById(R.id.open_hat);
        bt_shaker_high = (Button) findViewById(R.id.shaker_high);
        bt_shaker_low = (Button) findViewById(R.id.shaker_low);

        bt_kick.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.kick);
                mp.start();
            }
        });

        bt_closed_hat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.closed_hat);
                mp.start();
            }
        });

        bt_clap.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.clap);
                mp.start();
            }
        });

        bt_snare.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.snare);
                mp.start();
            }
        });

        bt_subdrop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.subdrop);
                mp.start();
            }
        });

        bt_open_hat.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.open_hat);
                mp.start();
            }
        });

        bt_shaker_high.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.shaker_high);
                mp.start();
            }
        });

        bt_shaker_low.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                final MediaPlayer mp = MediaPlayer.create(MainActivity.this, R.raw.shaker_low);
                mp.start();
            }
        });
    }
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source