이는 내가 사용하는 기능이다 retriever.getFrameAtTime이 정확하지 않습니다. 어떻게 동영상의 스크린 샷을 얻을 수 있습니까?
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 초)보다 정확합니다. 제가 누락 된 부분이 있습니까, 아니라면, 리트리버 대신 무엇을 사용할 수 있습니까?
FYI : Android 6.0 Marshmallow는 정확한 프레임이 'getFrameAtTime' API에 의해 반환되지 않는 버그를 알고 있습니다. - https://code.google.com/p/android/issues/detail?id=193194 –