2014-01-21 43 views
0

我已經把視頻作爲輸入。現在決定用它來獲取相框,所以我使用了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

此時:

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)); 
} 
+0

我之前,但得到videolength是關鍵的一年加入這樣一個循環..你可以幫助我得到videolength的價值。 – Somashekar

+0

@ user3217889我沒有安卓系統,所以我無法嘗試。但[這裏](http://stackoverflow.com/questions/19689553/how-to-read-length-of-video-recorded-with-mediarecorder-into-private-app-storage)是你的問題的兩種解決方案。 – Sam

+0

非常感謝..讓我退房一次。 – Somashekar