Поймать ошибки Android MediaPlayer - PullRequest
1 голос
/ 04 января 2012

Я хочу отловить ошибки MediaPlayer, например:

01-03 21:03:08.797: E/MediaPlayer(9470): error (1, -2147483648)

или это

01-03 20:52:48.859: E/MediaPlayer(8674): error (1, -1004)

Какое исключение нужно отловить?Я попробовал это с

    try {
        mp.start();
    }

    catch (IllegalArgumentException e){Log.d(TAG, "error1");}
    catch (IllegalStateException e) {Log.d(TAG, "error2");}
    catch (Exception e){Log.d(TAG, "error2");}

Но это не работает.Может кто-нибудь сказать мне, какое исключение я должен поймать?

1 Ответ

8 голосов
/ 04 января 2012

Вам необходимо внедрить android.media.MediaPlayer.OnErrorListener в свой фрагмент или действие.

/*
     * Called to indicate an error. Parameters
     * 
     * mp the MediaPlayer the error pertains to what the type of error that has
     * occurred: MEDIA_ERROR_UNKNOWN MEDIA_ERROR_SERVER_DIED extra an extra
     * code, specific to the error. Typically implementation dependant. Returns 
     * True if the method handled the error, false if it didn't. Returning
     * false, or not having an OnErrorListener at all, will cause the
     * OnCompletionListener to be called.
     */
    @Override
    public boolean onError(MediaPlayer mp, int what, int extras) {

        return true;
    }

При создании MediaPlayer убедитесь, что вы вызываете

mediaPlayer.setOnErrorListener(this);
...