2010-10-01 58 views
3

我想用videoview逐帧播放。 我有这个:VideoView和逐步播放(逐帧)

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

但是在此之后,我没有看到框架,直到我点击播放......我不想那样,我只是想看到下一帧。

此外 - 我可以做同样的前一帧?

在此先感谢。

回答

2

它暂停时不会查找。但是,如果您使用SurfaceView和MediaPlayer,因为VideoView没有onSeekComplete回调函数,所以您可以在查找后立即暂停。

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

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

这将寻求和显示的东西。不幸的是,你会发现这不允许你逐帧播放。

1

您可以使用MediaMetadataRetriever来选择所需的帧,然后使用MediaMetadataRetriever.getFrameAtTime(long timeUs)将其作为BitMap获取。它将比使用MediaPlayer更好地工作。

我希望它是有用的。

+0

你能详细说明一下吗? – user1767754 2015-01-06 20:15:05

+0

@ user1767754 [This](http://android-er.blogspot.kr/2013/05/get-image-frame-in-video-using.html)可能会帮助您使用MediaMetadataRetriever以获取框架。 – 2015-05-28 11:43:48