swiftAVPlayerLayer视频进度条如何操作纯代码
要操作AVPlayerLayer视频进度条,你需要进行以下步骤:
- 导入AVFoundation框架:
import AVFoundation
- 创建一个AVPlayer对象和一个AVPlayerLayer对象:
let player = AVPlayer()
let playerLayer = AVPlayerLayer(player: player)
- 设置AVPlayerLayer对象的frame和视频填充模式:
playerLayer.frame = CGRect(x: 0, y: 0, width: 300, height: 200)
playerLayer.videoGravity = .resizeAspect
- 将AVPlayerLayer对象添加到你的视图中:
view.layer.addSublayer(playerLayer)
- 创建一个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)
- 实现方法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)
}
- 在你需要播放视频的地方,设置AVPlayer对象的URL,并调用play()方法开始播放:
let videoURL = URL(string: "your_video_url")
let playerItem = AVPlayerItem(url: videoURL)
player.replaceCurrentItem(with: playerItem)
player.play()
这样就可以通过滑动进度条来控制视频的进度了
原文地址: http://www.cveoy.top/t/topic/h9II 著作权归作者所有。请勿转载和采集!