瀏覽代碼

Merge branch 'master' of https://git.yishihui.com/iOS/Introduce
合并代码

jsonwang 3 年之前
父節點
當前提交
2a07afdacd

+ 2 - 2
Introduce.xcodeproj/project.pbxproj

@@ -422,7 +422,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 0.5;
+				CURRENT_PROJECT_VERSION = 0.51;
 				DEVELOPMENT_TEAM = UH52C8A7SN;
 				ENABLE_BITCODE = NO;
 				EXCLUDED_ARCHS = "";
@@ -460,7 +460,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
 				CODE_SIGN_STYLE = Automatic;
-				CURRENT_PROJECT_VERSION = 0.5;
+				CURRENT_PROJECT_VERSION = 0.51;
 				DEVELOPMENT_TEAM = UH52C8A7SN;
 				ENABLE_BITCODE = NO;
 				EXCLUDED_ARCHS = "";

+ 2 - 0
Introduce/Record/INIntrocudeController.swift

@@ -81,6 +81,8 @@ class INIntrocudeController: BFBaseViewController {
     }
     
     @objc func exportAction(){
+        recordScreenVC.backBtnClick()
+
         let controller = INVideoExportController()
         controller.export.data = recordScreenVC.itemModels
         self.navigationController?.pushViewController(controller, animated: true)

+ 50 - 28
Introduce/Record/INVideoExportController.swift

@@ -18,10 +18,13 @@ class INVideoExportController: BFBaseViewController {
     var videoAsset : AVURLAsset?
     var avplayerTimeObserver: NSKeyValueObservation?
     let backV = UIView()
+    var hasExportAll = false
+    var hasExportOnly = false
     var hasSaveAll = false
     var hasSaveOnly = false
     var saveAllUlr = URL(fileURLWithPath: "aaa")
     var saveOnlyUlr = URL(fileURLWithPath: "aaa")
+    var isExporting = false
     
     // 播放进度
     lazy var progreddL : UILabel = {
@@ -37,7 +40,7 @@ class INVideoExportController: BFBaseViewController {
     // 合成进度指示条
     lazy var progressView : UIView = {
         let v = UIView()
-        v.backgroundColor = .red
+        v.backgroundColor = ThemeStyleColor
         return v
     }()
     
@@ -47,36 +50,38 @@ class INVideoExportController: BFBaseViewController {
         la.textColor = .white
         la.textAlignment = .center
         la.text = "0%"
-        la.font = UIFont.systemFont(ofSize: 8)
+        la.font = UIFont.systemFont(ofSize: 28)
+        la.shadowColor = .black
+        la.shadowOffset = CGSize(width: 1, height: 1)
         return la
     }()
     
     lazy var saveAllBtn:UIButton = {
-        let saveAllBtn = UIButton()
-        saveAllBtn.setImage(UIImage(named: "export_saveall_n"), for: .normal)
-        saveAllBtn.setImage(UIImage(named: "export_saveall_h"), for: .selected)
-        saveAllBtn.addTarget(self, action: #selector(saveAllAction(btn:)), for: .touchUpInside)
-        saveAllBtn.isSelected = true
-        return saveAllBtn
+        let btn = UIButton()
+        btn.setImage(UIImage(named: "export_saveall_n"), for: .normal)
+        btn.setImage(UIImage(named: "export_saveall_h"), for: .selected)
+        btn.addTarget(self, action: #selector(saveAllAction(btn:)), for: .touchUpInside)
+        return btn
     }()
     
     lazy var saveOnlyBtn:UIButton = {
-        let saveOnlyBtn = UIButton()
-        saveOnlyBtn.setImage(UIImage(named: "export_saveonly_n"), for: .normal)
-        saveOnlyBtn.setImage(UIImage(named: "export_saveonly_h"), for: .selected)
-        saveOnlyBtn.addTarget(self, action: #selector(saveOnlyAction(btn:)), for: .touchUpInside)
-        return saveOnlyBtn
+        let btn = UIButton()
+        btn.setImage(UIImage(named: "export_saveonly_n"), for: .normal)
+        btn.setImage(UIImage(named: "export_saveonly_h"), for: .selected)
+        btn.addTarget(self, action: #selector(saveOnlyAction(btn:)), for: .touchUpInside)
+        btn.isSelected = true
+        return btn
     }()
     
     lazy var exportBtn : UIButton = {
-        let exportBtn = UIButton()
-        exportBtn.setTitle(" 保存到相册", for: .normal)
-        exportBtn.setTitleColor(.white, for: .normal)
-        exportBtn.setImage(UIImage(named: "export_btn"), for: .normal)
-        exportBtn.backgroundColor = ThemeStyleColor
-        exportBtn.addCorner(roundingCorners: .allCorners, corner: 8)
-        exportBtn.addTarget(self, action: #selector(saveNow), for: .touchUpInside)
-        return exportBtn
+        let btn = UIButton()
+        btn.setTitle(" 保存到相册", for: .normal)
+        btn.setTitleColor(.white, for: .normal)
+        btn.setImage(UIImage(named: "export_btn"), for: .normal)
+        btn.backgroundColor = ThemeStyleColor
+        btn.addCorner(roundingCorners: .allCorners, corner: 8)
+        btn.addTarget(self, action: #selector(saveToPhotoNow), for: .touchUpInside)
+        return btn
     }()
     
     lazy var bottomView:UIView = {
@@ -92,7 +97,7 @@ class INVideoExportController: BFBaseViewController {
          //    进度监控
             if let item = avplayer?.currentItem {
                 DispatchQueue.main.async { [weak self] in
-                    self?.progreddL.text = String(format: "%.2f / %.2f", CMTimeGetSeconds(time), CMTimeGetSeconds(item.duration))
+                    self?.progreddL.text = String(format: "%@ / %@", CMTimeGetSeconds(time).formatDurationToHMS(), CMTimeGetSeconds(item.duration).formatDurationToHMS())
                 }
                 
             }
@@ -125,6 +130,7 @@ class INVideoExportController: BFBaseViewController {
                 guard let sself = self else {
                     return
                 }
+                self?.isExporting = false
                 sself.bottomView.isHidden = false
                 sself.progreddL.isHidden = false
                 sself.progressView.isHidden = true
@@ -137,12 +143,12 @@ class INVideoExportController: BFBaseViewController {
                     
                     if sself.saveAllBtn.isSelected {
                         sself.saveAllUlr = fileUrl
-                        sself.hasSaveAll = true
+                        sself.hasExportAll = true
                     }
                     
                     if sself.saveOnlyBtn.isSelected {
                         sself.saveOnlyUlr = fileUrl
-                        sself.hasSaveOnly = true
+                        sself.hasExportOnly = true
                     }
                 }
             }
@@ -161,6 +167,9 @@ class INVideoExportController: BFBaseViewController {
     }
     
     override func backBtnClick() {
+        if !(hasExportAll || hasExportOnly) {
+            
+        }
         export.cancelExport()
         super.backBtnClick()
     }
@@ -172,7 +181,7 @@ class INVideoExportController: BFBaseViewController {
         leftButton(image: nil, imageName: nil, tintColor: UIColor.white)
         
 //        backV.frame = CGRect(x: 0, y: navHeadImageView?.bottomY ?? 0, width: cScreenWidth, height: cScreenWidth)
-        backV.backgroundColor = .gray
+        backV.backgroundColor = .clear
         backV.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(play)))
 
         
@@ -275,7 +284,11 @@ class INVideoExportController: BFBaseViewController {
          
     }
     
-    @objc func saveNow(){
+    @objc func saveToPhotoNow(){
+        if (self.saveAllBtn.isSelected && self.hasSaveAll) || self.saveOnlyBtn.isSelected && self.hasSaveOnly {
+            cShowHUB(superView: nil, msg: "已保存过了")
+            return
+        }
         if let url = (avplayer.currentItem?.asset as? AVURLAsset)?.url{
             PHPhotoLibrary.shared().performChanges {
                 PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: url)
@@ -284,6 +297,11 @@ class INVideoExportController: BFBaseViewController {
                     DispatchQueue.main.async {
                         cShowHUB(superView: nil, msg: "保存成功")
                     }
+                    if self.saveAllBtn.isSelected {
+                        self.hasSaveAll = true
+                    }else if self.saveOnlyBtn.isSelected {
+                        self.hasSaveOnly = true
+                    }
                 }
             }
         }
@@ -296,7 +314,7 @@ class INVideoExportController: BFBaseViewController {
         btn.isSelected = true
         saveOnlyBtn.isSelected = false
         avplayer.pause()
-        if !hasSaveAll{
+        if !hasExportAll{
             exportNow()
         }else{
             let item = AVPlayerItem(url: saveAllUlr)
@@ -312,7 +330,7 @@ class INVideoExportController: BFBaseViewController {
         btn.isSelected = true
         saveAllBtn.isSelected = false
         avplayer.pause()
-        if !hasSaveOnly {
+        if !hasExportOnly {
             exportNow()
         }else{
             let item = AVPlayerItem(url: saveOnlyUlr)
@@ -322,6 +340,10 @@ class INVideoExportController: BFBaseViewController {
     }
     
     @objc func play(){
+        if isExporting {
+            self.avplayer.pause()
+            return
+        }
         if self.avplayer.currentItem != nil {
             if self.avplayer.timeControlStatus == .playing {
                 self.avplayer.pause()