Parcourir la source

录音时禁止滑动进度条

harry il y a 3 ans
Parent
commit
58a12222d0

+ 18 - 15
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -362,7 +362,7 @@ public class BFRecordScreenController: BFBaseViewController {
         NotificationCenter.default.removeObserver(self)
         avplayerTimeObserver?.invalidate()
         if isRecording {
-            recorderManager?.stopRecord(isCancel: true)
+            recorderManager?.stopRecord(cancel: true)
         }
         assetPlayer?.pause()
         recordPlayer?.pause()
@@ -739,12 +739,12 @@ public class BFRecordScreenController: BFBaseViewController {
             BFLog(1, message: "移动结束 \(beginOnStartBtn)")
             if beginOnStartBtn == true {
                 beginOnStartBtn = false
-                if recordBtn.frame.contains(point) {
-                    // 结束录制
-                    endRecord()
-                } else {
-                    cancleRecord()
-                }
+                endRecord()
+//                if recordBtn.frame.contains(point) {
+//                    // 结束录制
+//                } else {
+//                    cancleRecord()
+//                }
             }
 
         default:
@@ -838,7 +838,7 @@ public class BFRecordScreenController: BFBaseViewController {
         if isDragingProgressSlder {
             return
         }
-
+        self.progressThumV.progressView.isUserInteractionEnabled = false
         pause()
         isRecording = true
 
@@ -882,6 +882,7 @@ public class BFRecordScreenController: BFBaseViewController {
         // 存储录音
         isRecording = false
         pause()
+        self.progressThumV.progressView.isUserInteractionEnabled = true
 
         recorderManager?.endRecord()
 
@@ -890,9 +891,10 @@ public class BFRecordScreenController: BFBaseViewController {
         }
     }
 
-    func cancleRecord() {
+    @objc func cancleRecord() {
         isRecording = false
         recorderManager?.cancleRecord()
+        self.progressThumV.progressView.isUserInteractionEnabled = true
 
         pause()
     }
@@ -1365,9 +1367,9 @@ public class BFRecordScreenController: BFBaseViewController {
     /// - Parameter CMTime: <#CMTime description#>
     func periodicTimeObserver(item: AVPlayerItem?, time: CMTime) {
         // 进度监控
-        if time.seconds < pauseTime {
-            return
-        }
+//        if time.seconds < pauseTime {
+//            return
+//        }
         if itemModels[currItemModelIndex].mediaType == .VIDEO {
             if CMTimeGetSeconds(item?.duration ?? CMTime.zero) > 0 {
                 currentAssetProgress = CMTime(seconds: time.seconds, preferredTimescale: 1000)
@@ -1553,21 +1555,23 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
             progressThumV.isHidden = false
             progreddL.text = "00:00"
             
-            events.append(WithDrawModel(type: 0, timestamp: currentAssetProgress.seconds))
 
+            events.append(WithDrawModel(type: 0, timestamp: currentAssetProgress.seconds))
             // 重置指针
             currentAssetProgress = CMTime(seconds: 0, preferredTimescale: 1000)
+            searchStopAtRecordRange()
             // 重置播放器
             assetPlayer?.seek(to: CMTime.zero)
             recordPlayer?.seek(to: CMTime.zero)
             // 重设撤销栈
             itemModels[currItemModelIndex].events = events
             events = itemModels[page].events
+            currItemModelIndex = page
             searchStopAtRecordRange()
+            changeWithDrawBtnLayout(false)
 
             // 更新当前page
             pauseTime = 0
-            currItemModelIndex = page
             if recordItem.mediaType == .VIDEO {
                 reloadMaterial(recordItem: recordItem)
                 assetPlayer?.seek(to: .zero, toleranceBefore: CMTime(value: 1, timescale: 1_000_000), toleranceAfter: CMTime(value: 1, timescale: 1_000_000))
@@ -1576,7 +1580,6 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
                 changeItemHandle!(page)
             }
 
-//            movie?.startProcessing()
         }
     }