简体   繁体   中英

Android Studio| MediaPlayer| My function can run one time, then the app will crash | MediaPlayer: Error (1,-19)

//this is inside onCreate function
//layoutRost is declared as private, inside onCreate is initialized, also speak_rost...
layoutRost.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                speak_rost.start();

                speak_rost.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    @Override
                    public void onCompletion(MediaPlayer mp) {
                        speak_rost.release();

                    }
                });
            }
        });

First time I press it, the button & audio works well, second time I get the error: Open app again

It's been a while since I last touched Android, I created my own method for playing sounds and it worked fine considering I published an app, so maybe it would help

//method that plays a sound effects
public void playMedia(int resid){
    mediaPlayer = MediaPlayer.create(this,resid);
    mediaPlayer.start();
    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            mp.release();
        }
    });
}

Every time there was something to play I would pass the id of the resource to this method

//just initialize inside ClickListener, speak_rost, and after .setOnCompletionListener, I put speak_rost().start; that was ALL, very nice problem, now all my 50+ buttons/layouts are "in the right form" to play 100+ time, every time I needed. Thank you.
layoutRost.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                speak_rost = MediaPlayer.create(hundred.this, R.raw.asa);
                speak_rost .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                    public void onCompletion(MediaPlayer mysound) {
                        mysound.release();
                    }

                });
                speak_rost .start();
            }
        });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM