2017-01-25 19 views
1

Я использую AVMutableComposition для выполнения операции scaleTimeRange на AVAsset. Каждый раз, когда timeRange масштабируется (т. Е. Замедленное воспроизведение выполняется на видео), я должен экспортировать его с помощью AVExportSession.Предварительный просмотр изменений, внесенных в AVMutableComposition

Q) Мне было интересно, если есть зажигалку способ для просмотраактива всякий раз, когда я выполняю scaleTimeRange, вместо того, чтобы экспортировать каждый раз Asset для просмотра изменений.

Я читал, что AVPlayerItem полезен, но я не могу понять, как это сделать.

+0

Вы пробовали со значением скорости AVPlayer? Если вы установите значение скорости между 0.0 и 1.0, вы действительно видите видео в slowFoward. проверьте эту ссылку: https://developer.apple.com/reference/avfoundation/avplayer/1388846-rate – aleberguer

+0

К сожалению, это не помогает, потому что видео не может быть ** сохранено ** в состоянии fastforward/slow-mo, используя свойство 'rate'. По-видимому, мне придётся одновременно прикрыть и свойство «rate», и «scaleTimeRange», чтобы он работал. Я не совсем уверен, как это произойдет. –

+0

Вот что значит. Вы можете «просмотреть» видео, изменяя свойство скорости, выбрать значение для staleTimeRange и затем сохранить его с помощью AVMutableComposition – aleberguer

ответ

0

Вы можете создать AVPlayerItem от AVAsset, используя AVPlayerItem(asset:). Кроме того, AVMutableComposition является AVComposition является AVAsset.

См. Обзор в документации для AVMutableComposition. Вот пример такого рода: https://developer.apple.com/reference/avfoundation/avmutablecomposition

let composition: AVMutableComposition = ... 
let snapshot = composition.copy() 
let playerItem = AVPlayerItem(asset: snapshot) 
+0

Еще раз спасибо Dave y) –