Я нашел 1/2 решения, НО главный вопрос остается: "Есть ли способ включить CIFilter на CALayer в композиции видео на iOS"
, указанной в документации, чтобы обновить любой Атрибут фильтра после применения к слою, вы должны использовать
layer.setValue(1, forKeyPath: "backgroundFilters.myFilter.inputRadius")
Так что это означает, что для анимации любого фильтра, мы должны обновить свойства фильтра непосредственно в анимации, поэтому следует сделать следующее
для compositingFilter
свойство:
let animation = CABasicAnimation(keyPath: "compositingFilter.inputRadius")
и для фильтра в filters
свойство:
filter.name = "filterName"
layer.filters = [someFilters, filter, otherFilters]
let animation = CABasicAnimation(keyPath: "filters.filterName.inputRadius")
и для фильтра в backgroundFilters
свойство:
filter.name = "filterName"
layer.backgroundFilters = [someFilters, filter, otherFilters]
let animation = CABasicAnimation(keyPath: "backgroundFilters.filterName.inputRadius")
и задайте свойства animation
, затем добавьте его в слой layer.add(animation, forKey: "animationKey")
ПРИМЕЧАНИЕ: animationKey
может быть любым значением, даже значением nil
, но с повторным использованием значение удалит предыдущую анимацию; даже когда работает