MoviaBox/ShortPlay/Class/Player/View/SPPlayerControlView.swift
2025-04-09 18:24:58 +08:00

98 lines
2.5 KiB
Swift

//
// SPPlayerControlView.swift
// ShortPlay
//
// Created by on 2025/4/9.
//
import UIKit
class SPPlayerControlView: UIView {
///
var panProgressFinishBlock: ((_ progress: CGFloat) -> Void)?
///0-1
var progress: CGFloat = 0 {
didSet {
progressView.progress = progress
}
}
private(set) lazy var progressView: SPPlayerProgressView = {
let view = SPPlayerProgressView()
view.panStart = { [weak self] in
guard let self = self else { return }
self.panProgressStart()
}
view.panChange = { [weak self] progress in
guard let self = self else { return }
self.panProgressChange(progress: progress)
}
view.panFinish = { [weak self] progress in
guard let self = self else { return }
self.panProgressFinish(progress: progress)
}
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
sp_setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
extension SPPlayerControlView {
private func sp_setupUI() {
addSubview(progressView)
progressView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(10)
make.centerX.equalToSuperview()
make.bottom.equalToSuperview().offset(-20)
make.height.equalTo(30)
}
}
}
extension SPPlayerControlView {
///
private func panProgressStart() {
// self.isHidden = true
// screenProgressView.duration = self.player?.duration ?? 0
// screenProgressView.frame = self.window?.bounds ?? .zero
//
// self.window?.addSubview(screenProgressView)
//
// var point = self.progressView.convert(CGPoint(x: 0, y: 0), to: self.window)
// point.y = point.y + self.progressView.size.height - self.progressView.lineWidth / 2
//
// screenProgressView.point = point
}
///
private func panProgressChange(progress: CGFloat) {
// screenProgressView.progress = progress
}
///
private func panProgressFinish(progress: CGFloat) {
// self.isHidden = false
// screenProgressView.removeFromSuperview()
self.panProgressFinishBlock?(progress)
}
}