Timeline Progress bar for AVPlayer

后端 未结 8 2194
情深已故
情深已故 2020-12-22 22:31

AVPlayer is fully customizable, unfortunately there are convenient methods in AVPlayer for showing the time line progress bar.

AVPl         


        
8条回答
  •  一整个雨季
    2020-12-22 22:37

    Swifty answer to get progress:

    private func addPeriodicTimeObserver() {
            // Invoke callback every half second
            let interval = CMTime(seconds: 0.5,
                                  preferredTimescale: CMTimeScale(NSEC_PER_SEC))
            // Queue on which to invoke the callback
            let mainQueue = DispatchQueue.main
            // Add time observer
            self.playerController?.player?.addPeriodicTimeObserver(forInterval: interval, queue: mainQueue) { [weak self] time in
                let currentSeconds = CMTimeGetSeconds(time)
                guard let duration = self?.playerController?.player?.currentItem?.duration else { return }
                let totalSeconds = CMTimeGetSeconds(duration)
                let progress: Float = Float(currentSeconds/totalSeconds)
                print(progress)
            }
        }
    

    Ref

提交回复
热议问题