Browse Source

Merge branches 'master' and 'master' of https://git.yishihui.com/iOS/BFRecordScreenKit
合并代码

jsonwang 3 years ago
parent
commit
ee119c5245

+ 24 - 9
BFRecordScreenKit/Classes/RecordScreen/Controller/BFRecordScreenController.swift

@@ -651,6 +651,7 @@ public class BFRecordScreenController: BFBaseViewController {
                     self?.isEndPlay = true
                     // 录制结束显示播放按钮
                     sself.playBtn.isSelected = sself.itemModels[sself.currItemModelIndex].voiceStickers.count <= 0
+                    sself.playBtn.isHidden = sself.playBtn.isSelected
                 }
                 DispatchQueue.main.async { [weak self] in
                     // 录音完,重绘撤销按钮,更新录音按钮,
@@ -1062,6 +1063,7 @@ public class BFRecordScreenController: BFBaseViewController {
                 // 判断是否无录音了
                 if itemModels[currItemModelIndex].materialDuraion == .zero {
                     playBtn.isSelected = true
+                    playBtn.isHidden = playBtn.isSelected
                 }
             }
             searchStopAtRecordRange()
@@ -1124,7 +1126,7 @@ public class BFRecordScreenController: BFBaseViewController {
         }
         // 录制中不显示播放按钮
         playBtn.isSelected = true
-
+        playBtn.isHidden = playBtn.isSelected
         let cell = collectionView.cellForItem(at: IndexPath(item: currItemModelIndex, section: 0)) as? BFImageCoverViewCell
         if cell?.contentView.viewWithTag(100_100)?.superview == nil {
             cell?.contentView.addSubview(subtitleLabel)
@@ -1336,6 +1338,7 @@ public class BFRecordScreenController: BFBaseViewController {
             // 如果是图片需重置播放按钮
             if itemModel.mediaType == .IMAGE {
                 playBtn.isSelected = itemModels[currItemModelIndex].voiceStickers.count <= 0
+                playBtn.isHidden = playBtn.isSelected
             }
         }
     }
@@ -1392,9 +1395,16 @@ public class BFRecordScreenController: BFBaseViewController {
         changeWithDrawBtnLayout(0)
         isEndPlay = (progress == 1)
         recorderManager?.voiceModel = nil
-        // 视频拖动到最后隐藏录制按钮
-        if itemModels[currItemModelIndex].mediaType == .VIDEO, CMTimeCompare(currentAssetProgress, itemModels[currItemModelIndex].materialDuraion) >= 0 {
-            recordBtn.isHidden = true
+        
+        if CMTimeCompare(currentAssetProgress, itemModels[currItemModelIndex].materialDuraion) >= 0  {
+            // 视频拖动到最后隐藏录制按钮
+            if itemModels[currItemModelIndex].mediaType == .VIDEO  {
+                recordBtn.isHidden = true
+            } else {
+                recordBtn.isHidden = false
+                deleteRecordBtn.isHidden = true
+                recordBtn.alpha = 1
+            }
         }
     }
 
@@ -1675,11 +1685,11 @@ public class BFRecordScreenController: BFBaseViewController {
                 // 两个逻辑:如果在播,则跳过;如果暂停拖动到中间,则seek
                 if sself.isNormalPlaying {
                     let second = currentT - recordedAudio.startCMTime
-                    sself.recordPlayer?.seek(to: second, toleranceBefore: CMTime(seconds: 1, preferredTimescale: 1000), toleranceAfter: CMTime(seconds: 1, preferredTimescale: 1000), completionHandler: { isFinished in
-                        if isFinished {
-                            sself.recordPlayer?.play()
-                        }
-                    })
+                    if second.seconds > 0 {
+                        sself.recordPlayer?.seek(to: second, toleranceBefore: CMTime(seconds: 1, preferredTimescale: 1000), toleranceAfter: CMTime(seconds: 1, preferredTimescale: 1000), completionHandler: { isFinished in
+                        })
+                    }
+                    sself.recordPlayer?.play()
                     BFLog(3, message: "录音开始播放2, \(second), \(CMTimeGetSeconds(recordPlayer?.currentItem?.duration ?? .zero)),index = \(currentPlayRecordIndex)")
                 }
             }
@@ -1752,6 +1762,7 @@ public class BFRecordScreenController: BFBaseViewController {
 
         // 暂停状态
         playBtn.isSelected = (itemModels[currItemModelIndex].mediaType == .IMAGE && itemModels[currItemModelIndex].voiceStickers.count <= 0)
+        playBtn.isHidden = playBtn.isSelected
     }
 
     func fetchVideo() {
@@ -1784,6 +1795,7 @@ public class BFRecordScreenController: BFBaseViewController {
         }
         // 暂停状态--如果是图片素材同时没有录音文件时不显示播放按钮
         playBtn.isSelected = (itemModels.first?.mediaType == .IMAGE && (itemModels.first?.voiceStickers.count ?? 0) <= 0)
+        playBtn.isHidden = playBtn.isSelected
     }
 
     func setCoverImage(img: UIImage) {
@@ -1863,6 +1875,7 @@ public class BFRecordScreenController: BFBaseViewController {
                 cShowHUB(superView: nil, msg: "此视频已录制到头了哦")
             }
             sself.playBtn.isSelected = false
+            sself.playBtn.isHidden = sself.playBtn.isSelected
         }
     }
 
@@ -2128,6 +2141,7 @@ extension BFRecordScreenController: UICollectionViewDelegate, UICollectionViewDa
             let recordItem = itemModels[currItemModelIndex]
             // 暂停状态--如果是图片素材同时没有录音文件时不显示播放按钮
             playBtn.isSelected = (recordItem.mediaType == .IMAGE && recordItem.voiceStickers.count <= 0)
+            playBtn.isHidden = playBtn.isSelected
             // 重绘录音区域
             progressThumV.recordItem = recordItem
             DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in
@@ -2194,6 +2208,7 @@ public extension BFRecordScreenController {
         if itemModels[currItemModelIndex].mediaType == .IMAGE {
             if itemModels[currItemModelIndex].materialDuraion.seconds <= 0 {
                 playBtn.isSelected = true
+                playBtn.isHidden = playBtn.isSelected
                 return
             }
             isNormalPlaying = true