我正在尝试使用 Exoplayer 在视频中的特定点捕获视频帧,但此代码始终捕获视频的第一帧。我如何解决它
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(yourPath);
Bitmap bitmap = retriever.getFrameAtTime(simpleExoPlayer.getCurrentPosition());
我正在尝试使用 Exoplayer 在视频中的特定点捕获视频帧,但此代码始终捕获视频的第一帧。我如何解决它
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(yourPath);
Bitmap bitmap = retriever.getFrameAtTime(simpleExoPlayer.getCurrentPosition());
它应该是毫秒 * 1000。修复它!
此方法应该在特定点为您提供所需的框架
public static Bitmap getVideoFrame(Context context, Uri uri, long time) {
Bitmap bitmap = null;
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
try {
retriever.setDataSource(context, uri);
bitmap = retriever.getFrameAtTime(time);
} catch (RuntimeException ex) {
ex.printStackTrace();
} finally {
try {
retriever.release();
} catch (RuntimeException ex) {
ex.printStackTrace();
}
}
return bitmap;
}