VideoView и пошаговое воспроизведение (кадр за кадром) - PullRequest
3 голосов
/ 01 октября 2010

Я хотел бы играть кадр за кадром с видео. У меня есть это:

mVideoView.seekTo (mVideoView.getCurrentPosition () + 1);

Но после этого я не вижу кадр, пока не нажму кнопку воспроизведения ... Я не хочу этого, я просто хочу увидеть следующий кадр.

Также - могу ли я сделать то же самое для предыдущего кадра?

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 01 декабря 2010

Он не будет искать, пока находится в режиме паузы.Но вы всегда можете сделать паузу сразу после поиска, если вы используете SurfaceView и MediaPlayer, потому что VideoView не имеет обратного вызова onSeekComplete.

public void seek() {
mediaplayer.start();
mediaplayer.seekTo(mediaplayer.getCurrentPosition()+1);
}

public void onSeekComplete(MediaPlayer mp) {        
mediaplayer.pause();
}

Это будет искать и отображать что-то.К сожалению, вы обнаружите, что это не позволяет вам играть кадр за кадром.

1 голос
/ 23 июля 2013

Вы можете использовать MediaMetadataRetriever , чтобы выбрать нужный кадр, и затем получить его в виде растрового изображения с помощью MediaMetadataRetriever.getFrameAtTime (long timeUs). Это будет работать намного лучше, чем при использовании MediaPlayer.

Надеюсь, это полезно.

...