erdomester erdomester - 9 months ago 58
Android Question

MediaPlayer error: pause called in state 64

I am using a

in my

When I hit the back button, I get this error:

09-20 19:44:16.540: E/MediaPlayer(1822): pause called in state 64
09-20 19:44:16.540: E/MediaPlayer(1822): error (-38, 0)


public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (mp!= null && mp.isPlaying()) {

Intent intentstart = new Intent(X.this, Y.class);

return super.onKeyDown(keyCode, event);

If I use
, it's working fine. Why?

Tim Tim

It's illegal to pause a stopped MediaPlayer, and according to that error message that sounds exactly like what you're doing.

I suggest changing your onPause such that it does not try to pause the stopped MediaPlayer.


    if(mp!= null) {
       if(mp.isPlaying()) mp.pause();

Actually don't do this, I just found this in the docs:

Note that the transition from the Started state to the Paused state and vice versa happens asynchronously in the player engine. It may take some time before the state is updated in calls to isPlaying(),

You should maintain a variable locally to check if you've already stopped the MediaPlayer, and then test that for whether or not you should call pause().