Как получить время начала и окончания выбранных кадров из видео с помощью iOS SDK?

Что я пытаюсь сделать:

Я пытаюсь получить время начала и окончания фреймов, выбранных как в приложении ниже:введите описание изображения здесь

Что я сделал до сих пор:

  1. UIImagePickerController: Реализовано и установлено, что время начала и окончания не будет возвращено делегатом "didFinishPickingMediaWithInfo", если видеовход выбран из альбома. Подтверждено с командой Apple, тоже.
  2. Попробовал с "UIVideoEditorController" и, наконец, не смог получить время начала и окончания.
  3. Планирование попробовать с "AVAssetImageGenerator" генерировать миниатюры и программно обрабатывать "флешку или маркер", чтобы выбрать кадры вместе с AVPlayer для мгновенного предварительного просмотра, как в проигрывателе фильмов IOS (как в приложении). Но это довольно непросто и сложно и не уверен насчет скорости обработки.

Что я хочу знать:

  1. Помимо вышеупомянутых трех методов, есть ли другой способ иметь функциональность видео триммера? Какие-нибудь прямые API от Apple SDK?
  2. Кто-нибудь может дать ссылки или примеры кодов для видео триммера на основе AVAssetImageGenerator?

1 ответ

Если вы используете AVPlayer, вы можете получить время начала и окончания актива игрока, используя

self.player.currentItem.asset.duration;

Затем с помощью пользовательского ползунка выберите начальный и конечный кадры и преобразуйте значения относительно общей продолжительности, длины ползунка и значения из ползунка.

если у вас есть приблизительный период начала и окончания, действуйте следующим образом

AVAssetImageGenerator *generator = [[AVAssetImageGenerator alloc] initWithAsset:player.currentItem.asset];



    CGImageRef cgIm = [generator copyCGImageAtTime:player.currentTime 
                                        actualTime:&actualTime 
                                             error:&error];
    UIImage *image = [UIImage imageWithCGImage:cgIm];
Другие вопросы по тегам