エラーが発生しても数字をボソっとlogに呟くだけで有用な情報を教えてくれないことに定評があるAndroidのMediaPlayerですが、Player画面を終了しようとすると表題のエラーがこそっと出ていることがあります。
大抵、再生の停止時なので、あまり影響がなく放っておいたのですが、さてMediaPlayerを引き続き使おうか、と思うとErrorのStateに落ちていて結構困ります。
で、結論からいうと、surfaceDestroyed()される際に、MediaPlayerにsetDisplay()されているSurfaceHolderをdetachしてあげれば良さげです。
なので、こんな感じに。
@Override public void surfaceDestroyed(SurfaceHolder holder) { Log.d(TAG, "surfaceDestroyed"); mediaPlayer.setDisplay(null); }