1

我需要在距离完成一秒后添加 a CABasicAnimation(playerItem 的持续时间 - 1 AVPlayerLayerAVQueuePlayerplayerItem这是一个基本的交叉渐变。我似乎无法弄清楚如何判断我何时到达了正确的时间。使用下面的代码,我添加了一个周期性时间观察器。有什么方法可以知道我的 playerItem 何时结束一秒钟?

timeObserverToken = player?.addPeriodicTimeObserver(forInterval: interval, queue: DispatchQueue.main) { [unowned self] time in

    let fadeOutTime = CMTime(seconds: 1, preferredTimescale: time.timescale)
    let duration = self.currentItem()?.duration
    let convertedDuration = CMTimeConvertScale(duration!, time.timescale, .default)

    if CMTimeCompare(time, CMTimeSubtract(convertedDuration, fadeOutTime)) == 0 {
        self.playerLayer.add(self.fadeOut, forKey: "fadeOut")
    }
}
4

0 回答 0