要操作AVPlayerLayer视频进度条,你需要进行以下步骤:

  1. 导入AVFoundation框架:
import AVFoundation
  1. 创建一个AVPlayer对象和一个AVPlayerLayer对象:
let player = AVPlayer()
let playerLayer = AVPlayerLayer(player: player)
  1. 设置AVPlayerLayer对象的frame和视频填充模式:
playerLayer.frame = CGRect(x: 0, y: 0, width: 300, height: 200)
playerLayer.videoGravity = .resizeAspect
  1. 将AVPlayerLayer对象添加到你的视图中:
view.layer.addSublayer(playerLayer)
  1. 创建一个UISlider对象用于展示视频进度条,并设置其frame和其他属性:
let slider = UISlider(frame: CGRect(x: 0, y: 250, width: 300, height: 20))
slider.minimumValue = 0
slider.maximumValue = 1
slider.addTarget(self, action: #selector(handleSliderValueChanged(_:)), for: .valueChanged)
view.addSubview(slider)
  1. 实现方法handleSliderValueChanged(_:)
@objc func handleSliderValueChanged(_ sender: UISlider) {
    let value = sender.value
    let duration = CMTimeGetSeconds(player.currentItem?.duration ?? CMTime.zero)
    let seekTime = CMTime(seconds: duration * Double(value), preferredTimescale: 1)
    player.seek(to: seekTime)
}
  1. 在你需要播放视频的地方,设置AVPlayer对象的URL,并调用play()方法开始播放:
let videoURL = URL(string: "your_video_url")
let playerItem = AVPlayerItem(url: videoURL)
player.replaceCurrentItem(with: playerItem)
player.play()

这样就可以通过滑动进度条来控制视频的进度了

swiftAVPlayerLayer视频进度条如何操作纯代码

原文地址: http://www.cveoy.top/t/topic/h9II 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录