これは私が使用している関数です:
public Bitmap getVideoFrame(String FD, long time) {
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(FD);
return retriever.getFrameAtTime(time * 1000, MediaMetadataRetriever.OPTION_CLOSEST);
} catch (IllegalArgumentException ex) {
ex.printStackTrace();
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
}
}
return null;
}
ここで、FDはビデオ時間のパスです= videoview.getCurrentPosition();
問題は、この関数が取得する必要のある正確なフレームを取得しないことです。長いビデオ(20分)では、短いビデオ(10〜20秒)よりも正確になります。足りないものはありますか?そうでない場合は、レトリバーの代わりに何を使用できますか?