, MP "" (), reset(). MP , , , . , MP . Im prepare(), prepareAsync(). . :
private void actionCancel(){
try {
mp.setDataSource(new String());
} catch (Exception e) {
e.printStackTrace();
android.util.Log.d(TAG,"actionCancel(): mp.setDataSource() exception");
mp.reset();
}
}
4me.
, :
@Override
public void onBufferingUpdate(final MediaPlayer mp, final int percent) {
if (!mp.isPlaying()){
if (onBufferingUpdateCount>MAX_BUFFERING_UPDATES_AT_PREPARING_STATE)
restartMP();
onBufferingUpdateCount++;
return;
}
}
, . 10 , MP , :
private void restartMP(){
if (mp!=null)
if (mpState==MediaPlayerState.Preparing)
actionCancel();
else
mp.reset();
else
mp = new MediaPlayer();
mpState = MediaPlayerState.Idle;
onBufferingUpdateCount=0;
requestTrackInfoStartedAt=0;
requestPlay();
}
note. MediaPlayerState - , "". mpState - / , MediaPlayerState. prepareAsync() im mpState MediaPlayerState. , IMP MediaPlayerState.Started .