Проблемы с буферизацией в Android. media.MediaPlayer

Я пытаюсь реализовать MediaPlayer в приложении для Android, но теперь у меня две проблемы, которые не являются БОЛЬШОЙ SHOWSTOPPER, но они более чем раздражают, и мне нужно исправить это только для меня.

Я реализовал асинхронный контроллер MediaPlayer + для Activity, который отлично работает. Мой план состоял в том, чтобы показать также процент буферизации в MediaControl. Это тоже работает.

Но теперь, когда я вижу процент, я увидел странное поведение: если я ищу позицию, которая уже находится в буфере, буферизация снова начнется с этой позиции. Это известное и / или нормальное поведение / проблема / функция?

Вот более подробная информация:

Я использую 2.2 SDK. Вот как я это реализовал

public class Details extends Activity implements MediaPlayer.OnPreparedListener, MediaController.MediaPlayerControl { 

[...]

private void setPosition(int currentPos ){
    position = currentPos;
}

[...]

public void onCreate(Bundle savedInstanceState) {

[...] 

mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() {
            @Override
            public void onBufferingUpdate(MediaPlayer mp, int progress) {
                setPosition(progress);
            }
        });

[...]

public int getBufferPercentage() {
    return position;
}

[...]

public void seekTo(int i) {
    General.mediaPlayer.seekTo(i);
}
}

enter image description here

Чего я ожидал после нажатия на панель поиска

enter image description here

Что я получил

enter image description here

Это нормально?

11
задан Bill the Lizard 1 June 2011 в 13:36
поделиться