0

我正在尝试使用 Exoplayer 在视频中的特定点捕获视频帧,但此代码始终捕获视频的第一帧。我如何解决它

MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(yourPath);
Bitmap bitmap = retriever.getFrameAtTime(simpleExoPlayer.getCurrentPosition());
4

2 回答 2

1

它应该是毫秒 * 1000。修复它!

于 2021-09-20T04:59:23.860 回答
1

此方法应该在特定点为您提供所需的框架

  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;
    }
于 2021-09-18T14:23:20.887 回答