Android - буферизация в MediaPlayer - PullRequest
3 голосов
/ 02 июня 2010

Я использую MediaPlayer для воспроизведения видео в своем приложении. Для буферизации видео требуется некоторое время, а видеовидение на это время пустое.

Есть ли способ начать буферизацию, когда пользователь находится на предыдущем экране, чтобы, когда он подходит к экрану воспроизведения видео, видео было готово к воспроизведению?

Спасибо Chris

Ответы [ 4 ]

4 голосов
/ 02 июня 2010

MediaPlayer позволяет зарегистрировать OnPreparedListener и OnBufferingUpdateListener .

0 голосов
/ 11 февраля 2014
mediaPlayer.setOnInfoListener(new OnInfoListener() {
    @Override
    public boolean onInfo(MediaPlayer mp, int what, int extra) {
        if (what == 703) {
            // Not documented :(
            // See http://stackoverflow.com/a/9622717/435605
            isBuffering = true;
        } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
            isBuffering = false;
        }
        return false;
    }
});
0 голосов
/ 11 апреля 2013

как показано ниже:

mp.setOnInfoListener(new OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
    if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START) {
        loadingDialog.setVisibility(View.VISIBLE);
    } else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END) {
        loadingDialog.setVisibility(View.GONE);
    }
    return false;
}

});

0 голосов
/ 15 октября 2010

Я не пробовал, но вы можете попробовать вызвать MediaPlayer.prepareAsync (), пока пользователь находится на предыдущем экране, а затем вызвать .start (), когда пользователь переходит на правый экран. Не уверен, где медиаплеер может жить во время этого процесса ... Возможно, вам потребуется сделать все это в рамках одного действия, которое вы динамически обновляете, когда пользователь хочет посмотреть видео.

...