Проблемы с MediaExtractor

Я пытаюсь получить определенные кадры в определенное время, как изображения из фильма, используяMediaExtractor а такжеMediaCodec, Я могу сделать это успешно, если:

я используюextractor.seekTo(time, MediaExtractor.SEEK_TO_PREVIOUS_SYNC); однако это дает только ближайший кадр синхронизации, а не целевой кадр.Я последовательно извлекаю все кадры, используяextractor.advance(); , но мне нужно получить целевой кадр не всем.

Итак, я пробую следующее:

extractor.seekTo(time, MediaExtractor.SEEK_TO_PREVIOUS_SYNC);
while(extractor.getSampleTime()<time /*target time*/) extractor.advance();

Это обеспечивает правильный кадр, но по какой-то причине изображение повреждено. Это выглядит как правильное изображение (которое я получаю из успешных случаев), но с некоторой пикселизацией и странной дымкой.

while-loop единственное, что отличается между успешными и испорченными делами. Что делать для продвиженияMediaExtractor в определенное время (а не только время синхронизации) без получения поврежденного изображения?

Ответы на вопрос(1)

Ваш ответ на вопрос