Glide - Einzelbild von Video zu einem bestimmten Zeitpunkt laden?

Ich versuche, mit Glide durch Frames in einer Videodatei zu navigieren (ohne auf das Problem der Suche nach Keyframes zu stoßen, unter dem Android leidet). Ich kann das in Picasso machen, indem ich so etwas mache wie:

picasso = new Picasso.Builder(MainActivity.this).addRequestHandler(new PicassoVideoFrameRequestHandler()).build();
picasso.load("videoframe://" + Environment.getExternalStorageDirectory().toString() +
                    "/source.mp4#" + frameNumber)
                    .placeholder(drawable)
                    .memoryPolicy(MemoryPolicy.NO_CACHE)
                    .into(imageView);

(frameNumber ist einfach eine Ganzzahl, die sich jedes Mal um 50000 Mikrosekunden erhöht). Ich habe auch einen PicassoVideoFrameRequestHandler wie diesen:

public class PicassoVideoFrameRequestHandler extends RequestHandler {
public static final String SCHEME = "videoframe";

@Override public boolean canHandleRequest(Request data) {
    return SCHEME.equals(data.uri.getScheme());
}

@Override
public Result load(Request data, int networkPolicy) throws IOException {
    FFmpegMediaMetadataRetriever mediaMetadataRetriever = new FFmpegMediaMetadataRetriever();
    mediaMetadataRetriever.setDataSource(data.uri.getPath());
    String offsetString = data.uri.getFragment();
    long offset = Long.parseLong(offsetString);
    Bitmap bitmap = mediaMetadataRetriever.getFrameAtTime(offset, FFmpegMediaMetadataRetriever.OPTION_CLOSEST);
    return new Result(bitmap, Picasso.LoadedFrom.DISK);
}

}

Ich möchte stattdessen Glide verwenden, da es etwas besser mit dem Speicher umgeht. Gibt es eine Möglichkeit, diese Funktionalität in Glide zu haben?

Oder wirklich jede andere Möglichkeit, aus einem Video eine Reihe von Frames zu erstellen, die ich durchgehen kann!

Vielen Dank

Antworten auf die Frage(6)

Ihre Antwort auf die Frage