Проблемы с буферизацией с android.media.MediaPlayer - PullRequest
11 голосов
/ 27 мая 2011

Я пытаюсь реализовать MediaPlayer в приложении для Android, но теперь у меня есть две проблемы, которые не являются БОЛЬШИМ ШОУ-СТОППЕРОМ, но они более чем раздражают, и я должен исправить это, только для себя.1002 * Я реализовал асинхронный MediaPlayer + Controller для 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

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

1 Ответ

1 голос
/ 11 декабря 2011

Этот поток подтверждает, что, хотя позиция уже буферизована, MediaPlayer отправляет запрос на сервер.

...