1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- //
- // VideoExportController.swift
- // BFRecordScreenKit_Example
- //
- // Created by 胡志强 on 2021/11/25.
- // Copyright © 2021 CocoaPods. All rights reserved.
- //
- import AVFoundation
- import BFRecordScreenKit
- import BFUIKit
- import Foundation
- import UIKit
- 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] _, 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(synthesisAll: true)
- }
- }
|