2016-08-03 3 views
0

Я пытаюсь сделать паузу для видео, когда она появится. Я не знаю, как это сделать, добавлю ли я его в качестве другого калейзера или анимации. Вот мой код, когда я добавляю calayer перед его экспортом. Поэтому, когда происходит анимация, я хотел бы сделать паузу видео, когда она появится, а затем возобновить воспроизведение анимации.Как сделать паузу видео при появлении индикатора

let titleLayer = CATextLayer() 
    titleLayer.backgroundColor = NSColor.clearColor().CGColor 
    titleLayer.string = "Dummy text" 
    titleLayer.font = NSFont(name: "Helvetica", size: 28) 
    titleLayer.shadowOpacity = 0.5 
    titleLayer.alignmentMode = kCAAlignmentCenter 
    titleLayer.frame = CGRectMake(0, 50, size.width, size.height/6) 

    let animation: CABasicAnimation = CABasicAnimation(keyPath: "opacity") 
    animation.duration = 0 
    animation.fromValue = Int(1.0) 
    animation.toValue = Int(0.0) 
    animation.beginTime = 5 
    animation.removedOnCompletion = false 
    animation.fillMode = kCAFillModeForwards 
    titleLayer.addAnimation(animation, forKey: "animateOpacity") 

ответ

1

Вы можете приостановить видео, прежде чем добавлять анимацию к слою, а затем возобновить ее, когда анимация закончится. Чтобы узнать, когда закончится анимация, вы можете назначить объект делегатом из animation, а затем возобновить воспроизведение в методе делегата animationDidStop:finished:.

func showTitle() { 
    // configure animation { .. } 
    animation.delegate = self 
    // pause video 
    titleLayer.addAnimation(animation, forKey: "animateOpacity") 
} 

func animationDidStop(anim: CAAnimation, finished flag: Bool) { 
    // play video 
} 
+0

Благодарим за ответ @gravicle. Последний вопрос: как мне экспортировать это, используя avexportsession, чтобы при воспроизведении QuickTime он показывал паузу для времени анимации, затем он возобновляется? – spe

+1

@spel вам придется использовать 'AVMutableComposition' для этого. Фрагмент кода в этом вопросе делает почти то, что вы пытаетесь сделать: http://stackoverflow.com/questions/10887449/black-video-caanimation-and-avfoundation-avassetexportsession – gravicle

Смежные вопросы