123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- //
- // VideoExportController.swift
- // BFRecordScreenKit_Example
- //
- // Created by 胡志强 on 2021/11/25.
- // Copyright © 2021 CocoaPods. All rights reserved.
- //
- import Foundation
- import BFRecordScreenKit
- import BFUIKit
- import UIKit
- import AVFoundation
- class VideoExportController: BFBaseViewController{
-
- var videoAsset : AVURLAsset?
-
- lazy var progressView : UIView = {
- let v = UIView(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: 0, height: 10))
- v.backgroundColor = .red
- return v
- }()
-
- lazy var progressL : UILabel = {
- let la = UILabel(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: cScreenWidth, height: 10))
- la.textColor = .white
- la.textAlignment = .center
- la.text = "0%"
- la.font = UIFont.systemFont(ofSize: 8)
- return la
- }()
-
- lazy var export : BFRecordExport = {
- let export = BFRecordExport()
-
- export.progress = {[weak self] progress in
- self?.progressView.frame = CGRect(x: 0, y: self?.navHeadImageView?.bottomY ?? 0, width: (cScreenWidth) * CGFloat(progress), height: 10)
- self?.progressL.text = String(format: "%d%%", Int(progress*100))
- }
- export.exportCompletion = {[weak self] (error, url) in
- guard let strongSelf = self else {
- return
- }
-
- if let fileUrl = url {
- DispatchQueue.main.async {
- let item = AVPlayerItem(url: fileUrl)
- let avplayer = AVPlayer(playerItem: item)
- let playerLayer = AVPlayerLayer(player: avplayer)
- playerLayer.frame = CGRect(x: 10, y: strongSelf.progressView.bottomY, width: cScreenWidth - 20, height: cScreenHeigth - strongSelf.progressView.bottomY - 10)
- strongSelf.view.layer.addSublayer(playerLayer)
- avplayer.play()
- }
- }
- }
- return export
- }()
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- showNavigation()
- }
-
- override func backBtnClick() {
- export.cancelExport()
- super.backBtnClick()
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- view.backgroundColor = .black
- navHeadImageView?.backgroundColor = .black
- leftButton(image: nil, imageName: nil, tintColor: UIColor.white)
-
- let backV = UIView(frame: CGRect(x: 0, y: navHeadImageView!.bottomY, width: cScreenWidth, height: 10))
- backV.backgroundColor = .gray
- view.addSubview(backV)
- view.addSubview(progressView)
- view.addSubview(progressL)
- export.startExprot()
- }
- }
|