3

我想用videoview逐帧播放。我有这个:

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

但在此之后,直到我点击播放,我才看到帧......我不想要那个,我只想看到下一帧。

另外 - 我可以对前一帧做同样的事情吗?

提前致谢。

4

2 回答 2

2

暂停时不会搜索。但是,如果您使用 SurfaceView 和 MediaPlayer,您总是可以在搜索后立即暂停,因为 VideoView 没有 onSeekComplete 回调。

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

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

这将寻找并显示一些东西。不幸的是,您会发现这不允许您逐帧播放。

于 2010-12-01T06:12:02.630 回答
1

您可以使用MediaMetadataRetriever选择所需的帧,然后使用 MediaMetadataRetriever.getFrameAtTime(long timeUs) 将其作为位图获取。它会比使用 MediaPlayer 好得多。

我希望它是有用的。

于 2013-07-23T10:42:19.370 回答