如何从视频文件输入中获取连续帧?

时间:2014-01-21 13:20:59

标签: java android video frame

我已经将视频视为输入。现在决定用它来获取帧,所以我使用了MediaMetadataRetriever()。使用后只得到第一帧。那么有人可以向我提出补救措施吗?

String STR = (String) Environment.getExternalStorageDirectory().getAbsolutePath();

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(STR+"/vd.3gpp");

img = (ImageView) findViewById(R.id.imageView1); 
img.setImageBitmap(retriever.getFrameAtTime(1000,MediaMetadataRetriever.OPTION_NEXT_SYNC));

提前致谢。

1 个答案:

答案 0 :(得分:1)

此时:

img.setImageBitmap(retriever.getFrameAtTime(1000,MediaMetadataRetriever.OPTION_NEXT_SYNC));

您正在检索一个帧并正好设置一个位图。 你需要的是一个循环,如:

int videoLength = /* get video length from some where */
for(int i = 0; i < videoLength; i *= 1000000)
{
    img.setImageBitmap(retriever.getFrameAtTime(1000, MediaMetadataRetriever.OPTION_NEXT_SYNC));
}