1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //
- // BFVideoThumbProgressView.swift
- // BFRecordScreenKit
- //
- // Created by 胡志强 on 2021/12/3.
- //
- import Foundation
- import UIKit
- import AVFoundation
- import BFCommonKit
- import SnapKit
- class BFVideoThumbProgressView: UIView {
- var videoAsset : AVURLAsset?
-
- var thumbImgs = [UIImage]()
-
- init(frame: CGRect, videoAsset:AVURLAsset) {
- super.init(frame: frame)
- self.videoAsset = videoAsset
- addSubview(progressView)
- splitVideoFileUrlFps(urlAsset: videoAsset, fps: 2) {[weak self] isSuccess, images in
- if isSuccess{
- self?.thumbImgs = images!
- DispatchQueue.main.async {[weak self] in
- if let sself = self{
- for (i, img) in images!.enumerated() {
- let iv = UIImageView(image: img)
- iv.contentMode = .scaleAspectFill
- sself.progressView.addSubview(iv)
- iv.snp.makeConstraints { make in
- make.left.equalTo(CGFloat(i) * sself.height + sself.width * 0.5)
- make.top.height.equalToSuperview()
- make.width.equalTo(sself.height)
- }
- }
- sself.progressView.contentSize = CGSize(width: CGFloat(images!.count) * sself.height + sself.width, height: sself.height)
- }
- }
- }
- }
- }
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- lazy var progressView : UIScrollView = {
- let sv = UIScrollView()
- sv.bounces = false
- sv.backgroundColor = .clear
- sv.decelerationRate = .fast
- sv.showsHorizontalScrollIndicator = false
-
-
- return sv
- }()
-
- override func didMoveToWindow() {
- super.didMoveToWindow()
-
-
- }
-
- override func layoutSubviews() {
- super.layoutSubviews()
- progressView.snp.makeConstraints { make in
- make.edges.equalToSuperview()
- }
-
- }
- }
|