MediaMetadataRetriever.getFrameAtTime()はいつでも同じフレームを返します。 は私のコードandroidのビデオファイルからフレームを取得する方法
private ArrayList<Bitmap> getFrames(String path){
try {
ArrayList<Bitmap> bArray = new ArrayList<Bitmap>();
bArray.clear();
MediaMetadataRetriever mRetriever = new MediaMetadataRetriever();
mRetriever.setDataSource(getDataSource(path));
for (int i = 3000; i <60000; i=i+5000) {
bArray.add(mRetriever.getFrameAtTime(i, MediaMetadataRetriever.OPTION_CLOSEST_SYNC));
}
return bArray;
} catch (Exception e) {
// TODO: handle exception
return null;
}
}
この方法を見て、常にあなたはフレームをフェッチするFFMPEGのようなものを使用する必要があるとしている
これはドキュメントごとに期待できる動作です:*「このメソッドは、可能であれば**指定されたオプションを考慮して、指定された時間位置に近い代表フレームを見つけ出し**、ビットマップとして返します。このようなフレームを取得できない場合は、nullでもかまいません。* –
@MH。私はビデオファイルからフレームを取得することができますどのように返信いただきありがとうございます。私の[質問]を見てください(http://stackoverflow.com/questions/10071408/how-to-get-frames-of-video-file-in-android) –
3年後、まだそれを見つけるのが難しいm解決策のために...誰もが解決策について知っていますか? –