Browse Source

增加合成失败展示页

harry 3 năm trước cách đây
mục cha
commit
bbb156753c
1 tập tin đã thay đổi với 67 bổ sung3 xóa
  1. 67 3
      Introduce/Record/INVideoExportController.swift

+ 67 - 3
Introduce/Record/INVideoExportController.swift

@@ -96,6 +96,52 @@ class INVideoExportController: BFBaseViewController {
 //        vv.isHidden = true
         return vv
     }()
+    
+    lazy var errorView : UIView = {
+        let backV = UIView()
+        backV.backgroundColor = .black
+        backV.isHidden = true
+        
+        let titleL = UILabel()
+        titleL.text = "合成失败"
+        titleL.font = UIFont.systemFont(ofSize: 36)
+        titleL.textColor = .white
+        titleL.textAlignment = .center
+        backV.addSubview(titleL)
+        
+        let subTitleL = UILabel()
+        subTitleL.text = "请重新尝试"
+        subTitleL.tag = 33000
+        subTitleL.font = UIFont.systemFont(ofSize: 36)
+        subTitleL.textColor = UIColor.hexColor(hexadecimal: "#A6A6A6")
+        subTitleL.textAlignment = .center
+        backV.addSubview(subTitleL)
+        
+        let retryBtn = UIButton()
+        retryBtn.backgroundColor = ThemeStyleColor
+        retryBtn.addCorner(corner:5)
+        retryBtn.addTarget(self, action: #selector(retryAction), for: .touchUpInside)
+        backV.addSubview(retryBtn)
+        
+        retryBtn.snp.makeConstraints { make in
+            make.width.equalTo(245)
+            make.height.equalTo(50)
+            make.center.equalToSuperview()
+        }
+        subTitleL.snp.makeConstraints { make in
+            make.left.right.equalToSuperview()
+            make.height.equalTo(40)
+            make.bottom.equalTo(retryBtn.snp.top).offset(30)
+        }
+        titleL.snp.makeConstraints { make in
+            make.left.right.equalToSuperview()
+            make.height.equalTo(70)
+            make.bottom.equalTo(subTitleL.snp.top)
+        }
+        
+        
+        return backV
+    }()
 
     var playerLayer: AVPlayerLayer!
     lazy var avplayer: AVPlayer = {
@@ -133,7 +179,7 @@ class INVideoExportController: BFBaseViewController {
             }
         }
 
-        export.exportCompletion = { [weak self] _, url in
+        export.exportCompletion = { [weak self] error, url in
             DispatchQueue.main.async { [weak self] in
                 guard let sself = self else {
                     return
@@ -167,6 +213,20 @@ class INVideoExportController: BFBaseViewController {
                     }
                     // 添加播放进度视图
                     self?.addVideoSliderView()
+                }else {
+                    if let l = sself.errorView.viewWithTag(33000) as? UILabel, let err = error as NSError? {
+                        switch err.code {
+                        case ExportError.FileNotExist.rawValue :
+                            l.text = "原视频/图片文件被删除"
+                        case ExportError.DiskNoSpace.rawValue :
+                            l.text = "手机存储空间不足"
+                        case ExportError.VoiceLost.rawValue :
+                            l.text = "手机存储空间不足"
+                        default:
+                            l.text = "请重新尝试"
+                        }
+                    }
+                    sself.errorView.isHidden = false
                 }
             }
             // 合成成功上报
@@ -233,7 +293,8 @@ class INVideoExportController: BFBaseViewController {
 
         backV.addSubview(progressView)
         backV.addSubview(progressL)
-
+        backV.addSubview(errorView)
+        
         bottomView.addSubview(saveAllBtn)
         bottomView.addSubview(saveOnlyBtn)
         bottomView.addSubview(saveToPhotoBtn)
@@ -319,7 +380,10 @@ class INVideoExportController: BFBaseViewController {
     }
 
     // MARK: - 按钮事件
-
+    @objc func retryAction(){
+        exportNow()
+    }
+    
     func exportNow() {
         if isExporting {
             cShowHUB(superView: nil, msg: "正在合成中。。。")