Android 如何在Exoplayer中连续获取特定位置的视频帧

Android 如何在Exoplayer中连续获取特定位置的视频帧,android,frame,preview,exoplayer,Android,Frame,Preview,Exoplayer,我用这个例子来检索视频帧。是否有任何方法可以连续获取视频帧,但这不是一个合适的示例。 此方法应能实现以下目的: public static Bitmap getVideoFrame(Context context, Uri uri, long time) { Bitmap bitmap = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); try { retr

我用这个例子来检索视频帧。是否有任何方法可以连续获取视频帧,但这不是一个合适的示例。

此方法应能实现以下目的:

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;
}

希望这有帮助。

根据的答案


您的意思是要以编程方式提取某些帧的图像吗?我想在以编程方式搜索seekbar时,在图像视图中显示类似视频的图像帧。它将返回null?
exoPlayer.setVideoFrameMetadataListener((presentationTimeUs, releaseTimeNs, format, mediaFormat) -> currentFrame = getVideoFrame(getContext(), Uri.parse(data.path), presentationTimeUs));