Android - как получить кадры из видеофайла?

Я хочу извлечь кадры из видеофайла, хранящегося на устройстве. Каждое решение, которое я нашел, - это использовать FFmpegMediaMetadataRetriever или MediaMetadaraRetriever, но, как я уже писал, i">здесь у меня не работает. Есть ли другой способ извлечь кадры из видео?


person Mateusz Ceranka    schedule 23.02.2020    source источник


Ответы (1)


Я признаю, что некоторое время не использовал этот метод, но если он все еще работает с текущим Android API, он должен сработать.

Пожалуйста, дайте мне знать, если он все еще работает. Если нет - я удалю этот ответ.

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

Надеюсь это поможет.

person orimen    schedule 23.02.2020
comment
У меня это не работает, но работает, когда я использую setDataSource(context, Uri) вместо setDataSource(path). - person Mateusz Ceranka; 23.02.2020