MediaPlayer очень странный и очень хрупкий. У вас есть очень мало что вы можете сделать, чтобы сказать, в каком состоянии он находится - и все, что вы знаете, может в конечном итоге ошибаться.
В качестве примечания я обнаружил, что иногда Eclipse может заставить приложения делать ОЧЕНЬ странные, необъяснимые вещи. Очистка проекта и перезапуск Eclipse, а также удаление и переустановка приложения, как правило, решают эти действительно неприятные вещи, поэтому всегда старайтесь делать это, когда обнаружите ошибку, которая кажется невозможной.
При работе с MediaPlayer следите за тем, что он должен делать, и никогда не верьте, что MediaPlayer будет в том же состоянии, в котором вы его оставили. Каждый раз, когда вы что-нибудь делаете с MediaPlayer, будьте готовы к этому прекрасному IllegalStateException - возможно, оно воспроизводилось, может быть, оно было подготовлено, может быть, оно было приостановлено, но вы должны быть готовы к тому, что в любой момент оно может быть в неправильном состоянии. Когда вы пишете свой код таким образом, вы меньше полагаетесь на точность isPlaying ().
Не полезно, я знаю, но, к сожалению, у нас не так много альтернатив MediaPlayer.