Android VideoПросмотреть и искать - PullRequest
2 голосов
/ 05 июня 2010

Я играю видео, используя VideoView в моем приложении. По нажатию кнопки записывается текущая позиция видео, и приложение открывает браузер с некоторым URL. После нажатия кнопки «Назад» приложение возвращается в приложение «Видео» и возобновляет воспроизведение с того места, на котором оно было остановлено.

Я посмотрел на жизненный цикл Android Activity и увидел, что метод onStart () вызывается, когда видеоактивность выходит на первый план. Поэтому я создаю свой макет в onStart () и играю видео, ища текущую позицию.

Моя проблема в том, что когда видео возобновляется, оно буферизируется с самого начала и затем пытается. Поскольку он уже буферизован в первый раз, есть ли способ устранить буферизацию при выполнении поиска?

Спасибо Chris

Ответы [ 2 ]

0 голосов
/ 08 октября 2013

Определите свой ресурс videoview, затем используйте этот код

videoview = (VideoView) findViewById(R.id.videoview_play);
videoview.setVideoPath(dir + videoName);
//get focus, before playing the video.
videoview.setMediaController(new MediaController(this));
videoview.requestFocus();
videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                                       public void onPrepared(MediaPlayer mp){                         
                                         videoview.seekTo(5000);
                                         videoview.start();
                                       }
                                });

Вы должны добавить .setMediaController(new MediaController(this)); и

videoview.requestFocus();

перед использованием PrepareListener

надеюсь, это поможет вам

0 голосов
/ 22 апреля 2011

У меня похожая проблема.У меня есть OnPreparedListener, который выполняет поиск до начала.Функция seekTo работает, за исключением того, что с самого начала видео возникает сбой звука, как будто он начинает воспроизводиться, а затем ищет.Я не знаю, поможет ли мой код описанной проблеме буферизации, но это может помочь осветить ее.

  mVideoView.setVisibility(View.VISIBLE);
  //get current window information, and set format, set it up differently, if you need some special effects
  getWindow().setFormat(PixelFormat.TRANSLUCENT);
  //mVideoView.setVideoURI(Uri.parse(path));
  mVideoView.setVideoPath(path);
  //get focus, before playing the video.
  mVideoView.requestFocus();
  mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        @Override
           public void onPrepared(MediaPlayer mp) {                         
           mVideoView.seekTo(mImageSeek);
           mVideoView.start();
        }
     });
...