Проблемы с 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
в определенное время (а не только время синхронизации) без получения поврежденного изображения?