由网友(恶女通杀)分享简介:的MediaMetadataRetriever.getFrameAtTime()总是返回相同的帧时,曾经打电话。看看我的code The MediaMetadataRetriever.getFrameAtTime() always returns same frames when ever call.Have a...
的MediaMetadataRetriever.getFrameAtTime()总是返回相同的帧时,曾经打电话。 看看我的code
The MediaMetadataRetriever.getFrameAtTime() always returns same frames when ever call. Have a look my code
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;
}
}
此方法总是返回相同的帧
This method always return same frames
推荐答案
您将不得不使用类似FFMPEG来获取帧。
You are going to have to use something like FFMPEG to fetch the frames.
您必须使用NDK,并编译FFMPEG为Android;不幸的是它不会是很容易的。
You will have to use the NDK, and compile FFMPEG for Android; unfortunately it's not going to be very easy.
这两个出发点:
http://ffmpeg.org/
ffmpeg对于一款Android(使用教程:&QUOT; ffmpeg的和Android.mk&QUOT;)
祝你好运!
相关推荐
最新文章