Android 如何停止MediaPlayer';他在准备什么?

Android 如何停止MediaPlayer';他在准备什么?,android,android-mediaplayer,prepare,android-anr-dialog,Android,Android Mediaplayer,Prepare,Android Anr Dialog,我正在使用MediaPlayer播放在线曲目。但我遇到了问题: try { mMediaPlayer.reset(); mMediaPlayer.setDataSource(path); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setOnPreparedListener(preparedlistener); mMediaPlayer.prepareAs

我正在使用MediaPlayer播放在线曲目。但我遇到了问题:

try {
    mMediaPlayer.reset();
    mMediaPlayer.setDataSource(path);
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mMediaPlayer.setOnPreparedListener(preparedlistener);
    mMediaPlayer.prepareAsync();
} catch (IOException ex) {
    log.e(TAG, "IOException in setDataSourceAsync : path = " + path);
} catch (IllegalArgumentException ex) {
    log.e(TAG, "IllegalArgumentException in setDataSourceAsync : path = " + path);
    return;
}
在准备第一首曲目时(在onPrepared()之前的prepareAsync()之后),我尝试播放第二首曲目,当调用mmediplayer.reset()时,ANR得到,并更改为调用mmediplayer.release(),但仍然是ANR。
那么,在没有ANR的情况下,我如何停止MediaPlayer的准备?谁来帮忙。谢谢

如果从另一个线程(即非UI线程)调用
reset
release
,该怎么办?当然,捕获可能抛出的任何异常。谢谢,但我可以理解你的意思。我在服务中使用MediaPlayer跟踪播放器,当ANR发生时(没有异常),我启动新线程播放(调用重置和其他),但仍然是ANR,没有异常。我做错了什么?对不起,我的英语很差!